2014-10-07 172 views
0

我试图在视图加载时播放一个简单的mp4文件全屏。这里是代码:iOS无法播放视频

我没有得到一个视频,但我知道viewDidLoad被调用,并且存在一个视图。

// 
// FirstViewController.m 
// WSTR Finale 
// 
// Created by Chris Muench on 10/6/14. 
// Copyright (c) 2014 World Series of Team Roping. All rights reserved. 
// 

#import "WatchLiveViewController.h" 
#import <MediaPlayer/MediaPlayer.h> 

@interface WatchLiveViewController() 

@end 

@implementation WatchLiveViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSURL *movieURL = [NSURL URLWithString:@"http://download.wavetlan.com/SVV/Media/HTTP/H264/Talkinghead_Media/H264_test1_Talkinghead_mp4_480x360.mp4"]; 
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; 
    moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
    moviePlayer.view.transform = CGAffineTransformConcat(moviePlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
    UIWindow *backgroundWindow = [[UIApplication sharedApplication] keyWindow]; 
    [moviePlayer.view setFrame:backgroundWindow.frame]; 
    [backgroundWindow addSubview:moviePlayer.view]; 
    [moviePlayer play]; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 
+0

是否没有变换工作?您应该考虑使用backgroundWindow.bounds而不是.frame来避免重复偏移。 – 2014-10-07 15:56:11

+0

我确定在将实际视图控制器放入导航堆栈之前,您已经知道“框架”和“边界”属性是未定义的(甚至可能是CGRectNull) - 并且调用了“-viewDidLoad”方法绝对_before_。 – holex 2014-10-07 16:02:57

+0

我试图改变它viewDidAppear现在我只是得到一个大的黑色屏幕没有任何视频控制器或视频 – 2014-10-07 16:05:11

回答

1

试试这个代码:

MPMoviePlayerViewController *mpvController = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; 
mpvController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
mpvController.moviePlayer.scalingMode = MPMovieScalingModeFill; 
mpvController.view.transform = CGAffineTransformConcat(mpvController.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
[self presentViewController:mpvController animated:NO completion:^{ 
    [mpvController.moviePlayer play]; 
}]; 
+0

作品非常感谢! – 2014-10-07 17:15:26

+0

你可以在肖像中做这个戏吗? – 2014-10-07 17:18:14

+0

是的,注释掉mpvController.view.transform行 – gabbler 2014-10-07 17:33:42

0

我想你是失踪prepareToPlay。尝试是这样的:

... 
[moviePlayer prepareToPlay]; 
[moviePlayer play]; 
+0

我试过,但它仍然没有播放......只是一个空视图 – 2014-10-07 16:03:45

+0

我也试图改变它以查看出现,现在我只是得到一个大的黑色屏幕没有任何视频控制器或视频 – 2014-10-07 16:05:29