【问题标题】:IOS MPMoviePlayerViewController Loading endlesslyIOS MPMoviePlayerViewController 无限加载
【发布时间】:2013-03-31 02:37:00
【问题描述】:

我正在开发一个 IOS 应用程序(使用 Storyoard)。我有一个 ViewController:

//movieViewController.h

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>

@interface movieViewController : UIViewController {

    MPMoviePlayerViewController *moviePlayer;

}

@property (strong, nonatomic) MPMoviePlayerViewController *moviePlayer;
-(void) playMovie;

@end


//movieViewController.m
- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view.
    [self playMovie];
}

-(void)playMovie
{
    NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"movie"
                                                      ofType:@"mov"];

    moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL
                                                     fileURLWithPath:videoPath]];
[self presentMoviePlayerViewControllerAnimated:moviePlayer];
}

当我运行时,我看到我的 viewController 带有一个“正在加载...”,这需要很长时间。

【问题讨论】:

  • 难道不应该等到 viewDidAppear 调用后再调用 [self playMovie]?

标签: ios media-player mpmovieplayercontroller video-player


【解决方案1】:

您应该致电-prepareToPlay 和/或-play。根据MPMoviePlayerController 的文档:

从 iOS 5.0 开始,为了便于更细粒度的播放控制,新的电影播放器​​不会自动准备播放。

【讨论】:

  • 你混淆了 MPMoviePlayerController 和 MPMoviePlayerViewController。
  • MPMoviePlayerViewController 有一个moviePlayer 属性,它是一个 MPMoviePlayerController 对象。
  • 确实如此,但无需访问该属性即可实现 OP 的要求。 MPMoviePlayerViewController 开箱即用。
  • 这种行为记录在哪里?据我所知,情况并非如此。
  • 调用prepareToPlayplay 均无效。仍然会进入无限循环
【解决方案2】:
-(IBAction)startVideo:(id)sender
{
    NSURL *video = [[NSURL alloc] initWithString:@"http://www.w3schools.com/html/movie.mp4"];
    MPMoviePlayerViewController *controller = [[MPMoviePlayerViewController alloc]initWithContentURL:video];
    controller.view.frame = CGRectMake(20, 50, 280, 180);

    控制器.movi​​ePlayer.view.center = self.view.center;
    [self.view addSubview:controller.view];

    [controller.movi​​ePlayer prepareToPlay];
    [controller.movi​​ePlayer 播放];
}

【讨论】:

  • 您能否添加一些文字来解释您的解决方案?
猜你喜欢
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多