Pet*_*ter 5 avfoundation ios avplayer avcapturemoviefileoutput
我用AVFoundation创建了一个类似于Snapchat的自定义相机.图片方面有效:拍照并显示图片.现在我正在尝试拍摄视频并显示视频.
我已经捕获了一个成功的视频文件,经过测试并与MPMoviePlayer配合使用,但无法在AVPlayer上播放.
- (void)takeVideoAction:(id)sender {
NSString *outputPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"output.mp4"];
NSFileManager *manager = [[NSFileManager alloc] init];
if ([manager fileExistsAtPath:outputPath]){
[manager removeItemAtPath:outputPath error:nil];
}
[movieFileOutput startRecordingToOutputFileURL:[NSURL fileURLWithPath:outputPath] recordingDelegate:self];
}
Run Code Online (Sandbox Code Playgroud)
- (void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error{
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:outputFileURL options:nil];
[asset loadValuesAsynchronouslyForKeys:@[@"tracks"] completionHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
NSError *error = nil;
if([asset statusOfValueForKey:@"tracks" error:&error] == AVKeyValueStatusFailed){
NSLog(@"error: %@", [error description]);
}
else{
self.playerItem = [AVPlayerItem playerItemWithAsset:asset];
self.player = [AVPlayer playerWithPlayerItem:self.playerItem];
self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
self.playerLayer.frame = self.view.bounds;
[self.view.layer addSublayer:self.playerLayer];
[self.player play];
}
});
}];
}
Run Code Online (Sandbox Code Playgroud)
这是我第一次使用AVFoundation和AVPlayer.[self.player play]资产加载后我不能这样做吗?我需要等待物品状态AVPlayerItemStatusReadyToPlay吗?
错误: 错误域= NSURLErrorDomain代码= -1100"在此服务器上找不到请求的URL."
我正在使用 AVPlayerLayer 来播放视频。我使用了下面的代码并且运行良好。
AVPlayer *avPlayerq = [AVPlayer playerWithURL:NSURL];
avPlayerq.actionAtItemEnd = AVPlayerActionAtItemEndNone;
AVPlayerLayer *videoLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayerq];
videoLayer.frame= self.view.bounds;
videoLayer.videoGravity=AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer:videoLayer];
[avPlayerq play];
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助你。
| 归档时间: |
|
| 查看次数: |
565 次 |
| 最近记录: |