Landscape only when playing video. Xcode. IOS 7
I am using youtube-ios-player-helper: https://github.com/youtube/youtube-ios-player-helper and https://developers.google.com/youtube/v3/guides/ios_youtube_helper
Everything works well for me. Video playback is fine! BUT! I turned off landscape mode in the project settings. Therefore, the video is only played in portrait mode. How to enable landscape mode when playing videos in iOS 7?
+3
source to share
1 answer
My decision:
it works for iOS 7 and iOS 8
To play YouTube videos I used XCDYouTubeKit ( https://github.com/0xced/XCDYouTubeKit )
AppDelegate.h:
@property (nonatomic) BOOL screenIsPortraitOnly;
AppDelegate.m:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
if (!self.screenIsPortraitOnly) {
return UIInterfaceOrientationMaskPortrait;
}
else {
return UIInterfaceOrientationMaskAllButUpsideDown;
}
}
MYTableViewController.m:
#import "XCDYouTubeVideoPlayerViewController.h"
#import "XCDYouTubeKit.h"
#import "AppDelegate.h"
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:myIdYoutube];
[[NSNotificationCenter defaultCenter] removeObserver:videoPlayerViewController name:MPMoviePlayerPlaybackDidFinishNotification object:videoPlayerViewController.moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoFinished) name:MPMoviePlayerPlaybackDidFinishNotification object:videoPlayerViewController.moviePlayer];
videoPlayerViewController.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:videoPlayerViewController animated:YES completion:nil];
}
-(void)videoFinished
{
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
appDelegate.screenIsPortraitOnly = false;
[self dismissViewControllerAnimated:YES completion:NULL];
}
XCDYouTubeVideoPlayerViewController.m
#import "AppDelegate.h"
- (instancetype) initWithVideoIdentifier:(NSString *)videoIdentifier
{
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
appDelegate.screenIsPortraitOnly = true;
if ([[[UIDevice currentDevice] systemVersion] integerValue] >= 8)
self = [super initWithContentURL:nil];
else
self = [super init];
if (!self)
return nil;
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
if (videoIdentifier)
self.videoIdentifier = videoIdentifier;
return self;
}
- (void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
appDelegate.screenIsPortraitOnly = false;
if (![self isBeingDismissed])
return;
[self.videoOperation cancel];
}
0
source to share