Ios 否";“完成”;AVPlayerViewController上的按钮
我正在使用avplayervewcontroller来流式传输内容。播放工作正常,但我没有看到“完成”按钮来关闭视图 下面是我如何设置和显示视图控制器Ios 否";“完成”;AVPlayerViewController上的按钮,ios,Ios,我正在使用avplayervewcontroller来流式传输内容。播放工作正常,但我没有看到“完成”按钮来关闭视图 下面是我如何设置和显示视图控制器 NSURL* url = [content localSessionUrl]; AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init]; playerViewController.player = [AVPlayer playerWi
NSURL* url = [content localSessionUrl];
AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.player = [AVPlayer playerWithURL:url];
[self.navigationController pushViewController:playerViewController animated:YES];
[self.navigationController setNavigationBarHidden:YES];
是因为我在导航控制器上按它吗?
是的,“完成”按钮作为模式演示样式的取消按钮。如果要将AVPlayerViewController推送到导航堆栈上,则需要自己处理弹出操作。不要推或添加子视图,而是尝试显示视图。“完成”按钮将自动显示。下面是代码片段
-(void)playVideoWithUrl:(NSURL *)url{
AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc]init];
playerViewController.player = [[AVPlayer alloc]initWithURL:url];
[self presentViewController:playerViewController animated:YES completion:nil];
playerViewController.view.frame = self.view.frame;
[playerViewController.player play];
}
我认为问题在于,当您将avplayervewcontroller视图添加到占据整个屏幕的屏幕上的a视图时,它会将其视为已经处于全屏模式。诀窍是将其添加到占据屏幕较小部分的视图中 最初我是这样做的:
// Setup an AVPlayerViewController
self.avPlayerViewController = [[AVPlayerViewController alloc] init];
if ([self.avPlayerViewController respondsToSelector:@selector(allowsPictureInPicturePlayback)]) {
self.avPlayerViewController.allowsPictureInPicturePlayback = NO;
}
// Attach the Active Cloack AVPlayer to the AVPlayerViewController
AVPlayer *player = self.avPlayer;
self.avPlayerViewController.player = player;
self.avPlayerViewController.view.frame = self.view.bounds;
[self.view addSubview:self.avPlayerViewController.view];
// Setup the Parent Child relationshipo
[self addChildViewController:self.avPlayerViewController];
[self.avPlayerViewController willMoveToParentViewController:self];
[self.avPlayerViewController didMoveToParentViewController:self];
然而,我也遇到了同样的问题,我的播放器没有“完成”按钮,所以我无法退出视频
然后,我修改了我的xib/故事板,在顶部添加了一个带有“完成”按钮的UINavigationBar,并在下面添加了一个UIView作为容器。然后,我将avplayervewcontroller添加到这个容器视图中,控件神奇地变为非全屏模式。我有一个全屏按钮,让播放器进入全屏模式
然而,我随后不得不创建代码来自动隐藏导航栏,并在导航栏中添加一个完成按钮和一个标题等。对于iPad,我使用UIModalPresentationFormSheet显示和完成按钮wwas缺失。。。所以我用了我自己的按钮:
AVPlayerViewController *playerViewController =
[[AVPlayerViewController alloc] init];
//...
UIViewController *controllerToPresent = playerViewController;
if (IS_IPAD){
SBNavigationController *nc = [[SBNavigationController alloc] initWithRootViewController:playerViewController];
[playerViewController.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", @"") style:UIBarButtonItemStylePlain target:self action:@selector(cancelPlayingPressed)]];
controllerToPresent = nc;
}
我也遇到了这个问题。我把序列从“按”切换到“模式”,关闭按钮出现了
您是如何处理的??定制按钮@dev@Fyza,而不是pushViewController,我调用了presentViewController,如下pck456所述。请为我完成这项工作!做得很好。。。!!Swift 3更新:使用
self.showDetailViewController
而不是self.presentViewController