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有时会显示黑屏但声音很好的主要内容,如果未能解决你的问题,请参考以下文章

屏幕加载时AVPLayer显示黑屏

同时播放两个 AVPlayer 音频文件时出现音频故障

MPMoviePlayerController 截屏但只显示黑屏

kmp, 影音先锋 全屏黑屏,但有声音和字幕

安装显卡驱动后黑屏

使用 AVPlayer 的黑屏(在模拟器和设备中)