以下介紹當UIWebView內嵌Youtube時,如何以全螢幕播放後改變方向。
在AppDelegate內加入以下方法:
這邊我判斷了兩個controller,一個是ios8之後的,一個是之前的。
至於有其他文章說要設定UIWebView的兩個變數:setAllowsInlineMediaPlayback和setMediaPlaybackRequiresUserAction。在我測試看來是不需要,第一個特性是說可否inline播放,但其實iphone手機上只能全螢幕播放的樣子,不論設定成YES或NO均沒改變,另一個特性是影片是否可以自動播放,不論我設定如何也不會有變化,我想道理很簡單,由於手機上面一定要全螢幕播放,所以不可能允許影片自動播放,不然就會不斷跳出全螢幕的影片去打斷使用者的操控,而這當然是不會被允許的。
在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均沒改變,另一個特性是影片是否可以自動播放,不論我設定如何也不會有變化,我想道理很簡單,由於手機上面一定要全螢幕播放,所以不可能允許影片自動播放,不然就會不斷跳出全螢幕的影片去打斷使用者的操控,而這當然是不會被允許的。
留言
張貼留言