iOS的AVPlayer放缓
我正在使用AVPlayer在我的项目中播放在线video。 video播放良好。 现在我想减less/增加video的fps。 以下是我正在使用的代码:
self.asset = [AVAsset assetWithURL:self.videoUrl]; // the video player self.player = [AVPlayer playerWithURL:self.videoUrl]; self.player.actionAtItemEnd = AVPlayerActionAtItemEndNone; self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:[self.player currentItem]]; self.playerLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.myPlayerView.frame.size.height); [self.myPlayerView.layer addSublayer:self.playerLayer]; - (void)playerItemDidReachEnd:(NSNotification *)notification { AVPlayerItem *p = [notification object]; [p seekToTime:kCMTimeZero]; }
现在应该如何减less/增加在线video的fps?
你可以做一些像,
-(float)getFrameRateFromAVPlayer { float fps=0.00; if (self.queuePlayer.currentItem.asset) { AVAssetTrack * videoATrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] lastObject]; if(videoATrack) { fps = videoATrack.nominalFrameRate; } } return fps; }
要么
AVPlayerItem *item = AVPlayer.currentItem; // Your current item float fps = 0.00; for (AVPlayerItemTrack *track in item.tracks) { if ([track.assetTrack.mediaType isEqualToString:AVMediaTypeVideo]) { fps = track.currentVideoFrameRate; } }
希望这会帮助:)
AVPlayer允许您设置播放的当前速率。 基本上,它接受一系列的可能性值来控制当前的AVPlayerItem,比如播放慢进,快进或者负值的反转。 正如文件中所说的,你应该检查当前项目是否可以支持这些播放状态
- AVPlayer在播放HLS / AESencryptionvideo之前做出无关紧要的http请求
- 在iOS中使用AVPlayer可以知道当前的.ts文件或编码器当前的时间戳吗?
- 潘寻求AVPlayer
- 在检索比特率时,无法使用HLS获取AVAsset的音轨
- 使用AVPlayer在ios中进行audiostream式传输
- AVPlayerItem不能与多个AVPlayer实例关联,
- 在endInterruption调用AVAudioSessionDelegate,但不调用beginInterruption
- MPMoviePlayerViewController观察'_serverConnectionDiedNotification'
- iOS – AVPlayer seekToTime重新开始播放currentItem