Avplayer有时会显示黑屏但声音很好
Posted
技术标签:
【中文标题】Avplayer有时会显示黑屏但声音很好【英文标题】:Avplayer showing black screen sometimes but sound is fine 【发布时间】:2016-10-07 08:31:06 【问题描述】:我将 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];
【问题讨论】:
这是ios10吗?你试过iOS10.1 beta吗? 是的,我在 iOS10 上工作,没有在 10.1 上尝试过 @DeepakChaudhary 你找到答案了吗? @PankajGupta 不完全是,但我在相同的代码中做了一些更改,这比上一个更好:'// 显示视图控制器 controller.view.frame =_imgForVidFrame.frame; [自我addChildViewController:控制器]; [self.view addSubview:controller.view]; [vPlayer 播放];' 我遇到了同样的问题,并在here 上发布了相关信息。您是否在本地和/或远程视频中遇到此问题? 【参考方案1】:确保_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];
或者你可以提出AVPlayerViewController
之类的东西,
AVPlayer *player = [AVPlayer playerWithURL:_videoFilePath];
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = player;
[self presentViewController:playerViewController animated:YES completion:nil];
【讨论】:
帧正确,因为玩家在预期位置可见。我认为 avplayer 有问题,有时效果很好。 我想要特定帧中的视频,但是通过这些,无法设置帧 尝试在第一个解决方案中设置您想要的框架而不是playerLayer.frame = self.view.bounds;
!!以上是关于Avplayer有时会显示黑屏但声音很好的主要内容,如果未能解决你的问题,请参考以下文章