AVAssetReader
kullanarak video dosyasından tek tek kare tampon alıyorum ve çerçeve üzerinde bir işlem yaptıktan sonra AVAssetWritter
kullanarak yeni kareyi temp dosyasına kaydediyorum. Artık tüm yeni çerçevenin kaydedildiği geçici dosya yoluna sahibim tek tek Zaman çerçeveleri sürekli olarak geçici dosyaya eklerken video oynatmanın herhangi bir yolu var mı? BuradaAVPlayer kullanarak video oynatma
asla çalışır bloğunun içinde (çerçeveler sürekli ekliyor olduğu) geçici yolundan
- (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];
}
video oynatmak için kod Ve kodudur.
Önerinizi mi arıyorsunuz? Bu – iOSPawan
hala bu – iOSPawan
için çözüm arıyor Bu loadValuesAsynchronouslyForKeys: completionHandler: '' AVMetaDataItem', 'AVURLAsset' veya' AVAsset''de bir yöntem gibi görünüyor. 'NSURL' nesnesinin 'nil' olmadığını doğrulayabilir misiniz? – sho