Dee*_*ary 6 ios avplayer avplayerviewcontroller
我正在使用AVPlayer和AVPlayerViewController.我在视频中添加水印后播放视频.有时它工作正常,但有时它只显示黑屏,两种情况下音频都很好.
vPlayer = [AVPlayer playerWithURL:_videoFilePath];
// create a player view controller
AVPlayerViewController *controller = [[AVPlayerViewController alloc]init];
controller.videoGravity=AVLayerVideoGravityResizeAspect;
controller.player = vPlayer;
[vPlayer seekToTime:kCMTimeZero];
// show the view controller
[self addChildViewController:controller];
[vPlayer play];
controller.view.frame =_imgForVidFrame.frame;
[self.view addSubview:controller.view];
Run Code Online (Sandbox Code Playgroud)
确保_imgForVidFrame.frame每次都返回正确的帧!您可以在该行上放置断点来检查它是否返回正确的大小!
你的最后一行不应该[self.view addSubview:controller.view];这样controller.view.frame =_imgForVidFrame.frame;交换!
更新 :
那么你可以做类似下面的事情AVPlayerViewController,
AVPlayer *player = [AVPlayer playerWithURL:_videoFilePath];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
playerLayer.frame = self.view.bounds;
[self.view.layer addSublayer:playerLayer];
[player play];
Run Code Online (Sandbox Code Playgroud)
或者你可以提出AVPlayerViewController类似的东西,
AVPlayer *player = [AVPlayer playerWithURL:_videoFilePath];
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = player;
[self presentViewController:playerViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)