gpt4 book ai didi

iphone - 使用 AVPlayer 播放视频

转载 作者:可可西里 更新时间:2023-11-01 03:31:57 25 4
gpt4 key购买 nike

我正在使用 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];
}

block 内的代码永远不会运行。

最佳答案

将视频分成多个子视频对我很有效。

我做了什么,而不是将完整的视频保存在一个临时路径中。我将该视频分成多个子视频,然后相应地替换了 AVPlayerAVPlayerItem 属性。

所以现在功能与视频流一样工作。 :)

关于iphone - 使用 AVPlayer 播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com