[iOS] 播放Youtube時可以改變影片方向

以下介紹當UIWebView內嵌Youtube時,如何以全螢幕播放後改變方向。
在AppDelegate內加入以下方法:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)currentWindow
{
    id presentedViewController = currentWindow.rootViewController.presentedViewController;;
    NSString *className = presentedViewController ? NSStringFromClass([presentedViewController class]) : nil;
    if (currentWindow && ([className isEqualToString:@"AVFullScreenViewController"] ||
                      [className isEqualToString:@"MPInlineVideoFullscreenViewController"])) {
    return UIInterfaceOrientationMaskAll;
    } else {
    return UIInterfaceOrientationMaskPortrait;
    }
}
簡單介紹以下此方法的意義,首先他找出目前視窗裡面存在的view controller,然後判定他的class是否為特定的播放影片用的controller,如果是,就讓他自由旋轉,反之,維持該app的protrait方向。
這邊我判斷了兩個controller,一個是ios8之後的,一個是之前的。

至於有其他文章說要設定UIWebView的兩個變數:setAllowsInlineMediaPlayback和setMediaPlaybackRequiresUserAction。在我測試看來是不需要,第一個特性是說可否inline播放,但其實iphone手機上只能全螢幕播放的樣子,不論設定成YES或NO均沒改變,另一個特性是影片是否可以自動播放,不論我設定如何也不會有變化,我想道理很簡單,由於手機上面一定要全螢幕播放,所以不可能允許影片自動播放,不然就會不斷跳出全螢幕的影片去打斷使用者的操控,而這當然是不會被允許的。

留言