UIView 中的 AVPlayer 视图缺少控件

Posted

技术标签:

【中文标题】UIView 中的 AVPlayer 视图缺少控件【英文标题】:AVPlayer view in UIView is missing controls 【发布时间】:2018-10-25 11:48:50 【问题描述】:

如果将 AVPlayer 添加到 UIView,在 AVPlayer 中默认的视频前进滑块和播放按钮不会显示

NSURL *videourl= [NSURL URLWithString:strUrl];
AVPlayer *player = [AVPlayer playerWithURL:videourl];         

AVPlayerViewController *playerViewController = [AVPlayerViewController new];            

playerViewController.player = player;

playerViewController.view.frame = ViewAV.bounds;

AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
playerLayer.frame = ViewAV.bounds;

playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
//externalPlaybackVideoGravity
playerLayer.contentsGravity = AVLayerVideoGravityResizeAspect;

[ViewAV.layer addSublayer:playerLayer];
[ViewAV addSubview:playerViewController.view];

[playerViewController.player play];

【问题讨论】:

【参考方案1】:

尝试将showsPlaybackControlsrequiresLinearPlayback 设置为true,

playerViewController.showsPlaybackControls = YES;
playerViewController.requiresLinearPlayback = YES;

目前,您没有将playerViewController 添加为子viewController,因此您将看不到任何内容。添加如下,

[self addChildViewController:playerViewController];
[self.view.layer addSublayer:playerLayer];
[self.view addSubview:playerViewController.view];

【讨论】:

@ishanbhatt 您可以尝试添加为 childViewController,因为我在答案中更新了吗?

以上是关于UIView 中的 AVPlayer 视图缺少控件的主要内容,如果未能解决你的问题,请参考以下文章

UIView 中的 AVPlayer

使用 AVPlayer 在 UIView 中播放时间流逝

在视图中使用 AVPlayer 播放多个视频

在 AVPlayerViewController 全屏视图上呈现 UIView

使用 AVPlayer 时为啥我的视频无法在我的 UIView 中播放

使用 XCTest 访问自定义 UIView 中的后代控件