iOS*_*wan 7 iphone ios avplayer
我正在从视频文件中逐个获取帧缓冲AVAssetReader,并对帧进行一些操作,然后使用AVAssetWritter.将新帧保存到临时文件.现在我有临时文件路径,其中所有新帧都是逐个保存的.有没有什么方法可以在时间帧播放视频时不断添加到临时文件?
这里是从临时路径播放视频的代码(帧不断添加)
- (void)loadAssetFromFile {
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:[(mMediaReader.mCameraRecorder) tempVideoFilePath ]] options:nil];
NSString *tracksKey = @"tracks";
[asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:
^{
// Completion handler block.
dispatch_async(dispatch_get_main_queue(),
^{
NSError *error = nil;
AVKeyValueStatus status = [asset statusOfValueForKey:tracksKey error:&error];
if (status == AVKeyValueStatusLoaded) {
self.mPlayerItem = [AVPlayerItem playerItemWithAsset:asset];
[mPlayerItem addObserver:self forKeyPath:@"status"
options:0 context:&ItemStatusContext];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerItemDidReachEnd:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:mPlayerItem];
self.mPlayer = [AVPlayer playerWithPlayerItem:mPlayerItem];
[mPlayerView setPlayer:mPlayer];
[self play:nil];
}
else {
// You should deal with the error appropriately.
NSLog(@"The asset's tracks were not loaded:\n%@", [error localizedDescription]);
}
});
}];
}
- (IBAction)play:sender {
[mPlayer play];
}
Run Code Online (Sandbox Code Playgroud)
并且块内的代码永远不会运行.
将视频分成多个子视频对我有用。
我所做的不是将完整视频保存在一个临时路径中。我将该视频分成多个子视频,然后相应地替换AVPlayerItem其属性AVPlayer。
所以现在功能的工作方式与视频流相同。:)