gpt4 book ai didi

ios - MPInlineVideoFullscreenViewController 和 AVFullScreenViewController 首次进入纵向模式

转载 作者:可可西里 更新时间:2023-11-01 05:52:58 34 4
gpt4 key购买 nike

MPMovieplayer 横向问题太多。我的应用程序处于纵向模式。但我想要横向模式的视频。我已经具有视频的横向/纵向功能。我正在使用以下代码:

static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS7 = @"MPInlineVideoFullscreenViewController";
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS8 = @"AVFullScreenViewController";

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if ([[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS7)] ||
[[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS8)])
{

return UIInterfaceOrientationMaskAllButUpsideDown;
}
else {
return UIInterfaceOrientationMaskPortrait;
}

该代码在 iOS 7 和 iOS8 中都运行良好。但问题是,当设备处于横向模式时,视频首先以纵向模式打开。在方向改变后,应用程序可以正常工作。

提前致谢。

最佳答案

经过长时间的研发和不同的方法,并花费了 2-3 天。最后我在 friend 的帮助下得到了答案。如果我们的 View Controller 处于纵向模式,则以下代码无法将播放器 View 插入横向 View 。

static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS7 = @"MPInlineVideoFullscreenViewController";
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS8 = @"AVFullScreenViewController";

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if ([[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS7)] ||
[[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS8)])
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
else {
return UIInterfaceOrientationMaskPortrait;

在我的例子中,问题是我的 UIWebView 容器 View Controller 经常进入纵向模式。我不知道在 UINavigationController 中推送 ViewController 后遵循未为该 ViewController 调用的方向方法。

-(BOOL)shouldAutorotate;  
-(NSUInteger)supportedInterfaceOrientations;

为了解决这个问题,我将在 ViewDidLoad 方法中添加以下代码

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

然后在 viewWillDisappear 中的以下代码中

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

上面的代码终于解决了我的问题。

感谢所有支持我解决这个问题的人。

关于ios - MPInlineVideoFullscreenViewController 和 AVFullScreenViewController 首次进入纵向模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781128/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com