【问题标题】:MPMoviePlayerViewController won't play movie, start and closes immediatelyMPMoviePlayerViewController 不会播放电影,立即启动和关闭
【发布时间】:2013-04-10 13:48:45
【问题描述】:

我正在尝试使用 MPMoviePlayerViewController 播放视频,我展示了 MPMoviePlayerViewController,但 1 秒后他自行关闭。

这是我的代码:

.h:

#import <MediaPlayer/MediaPlayer.h>

@property (strong, nonatomic) MPMoviePlayerViewController *moviePlayerViewController;

.m:

- (void)playmovie
{
    NSString *databaseName = @"NO.mp4";
    NSArray *documentPaths =
    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentDir = [documentPaths objectAtIndex:0];
    NSString *databasePath = [documentDir stringByAppendingPathComponent:databaseName];

    NSURL *movieURL = [NSURL fileURLWithPath:databasePath];

    UIGraphicsBeginImageContext(CGSizeMake(1,1));
    self.moviePlayerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
    [self presentMoviePlayerViewControllerAnimated:self.moviePlayerViewController];
    UIGraphicsEndImageContext();

    [self.moviePlayerViewController.moviePlayer prepareToPlay];
    [self.moviePlayerViewController.moviePlayer play];
}

请告诉我我做错了什么。

提前致谢!

【问题讨论】:

  • 检查下面的答案 stackoverflow.com/a/15586468/1713478 将 url 更改为您的文件路径。试试这个你会成功的。
  • 那里的图形上下文是什么?
  • @jjv360 因为我遇到了这个错误:&lt;Error&gt;: CGContextSaveGState: invalid context 0x0 &lt;Error&gt;: CGContextClipToRect: invalid context 0x0 &lt;Error&gt;: CGContextTranslateCTM: invalid context 0x0 &lt;Error&gt;: CGContextDrawShading: invalid context 0x0 &lt;Error&gt;: CGContextRestoreGState: invalid context 0x0
  • 可以给presentMoviePlayerViewControllerAnimated里的code吗?
  • 试试下面的 NSString *path =[[NSBundle mainBundle] pathForResource:@"NO" ofType:@"mp4"]; NSURL *url = [NSURL fileURLWithPath:path];

标签: ios objective-c mpmovieplayercontroller mpmovieplayer mpmoviewcontroller


【解决方案1】:

检查下面的答案

https://stackoverflow.com/a/15586468/1713478

把网址改成下面的代码

NSString *path =[[NSBundle mainBundle] pathForResource:@"NO" ofType:@"mp4"]; 
NSURL *url = [NSURL fileURLWithPath:path];

试试这个你会成功的。

【讨论】:

    【解决方案2】:

    试试这个..

    NSString *databaseName = @"NO.mp4";
        NSArray *documentPaths =
        NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
        NSString *documentDir = [documentPaths objectAtIndex:0];
        NSString *databasePath = [documentDir stringByAppendingPathComponent:databaseName];
        NSURL *url = [NSURL fileURLWithPath:databasePath];
        MPMoviePlayerViewController *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
        moviePlayer.view.frame = CGRectMake(0, 0, 500, 500);
        moviePlayer.moviePlayer.shouldAutoplay=YES;
        moviePlayer.moviePlayer.controlStyle = MPMediaTypeMusicVideo;
        [moviePlayer.moviePlayer setFullscreen:YES animated:YES];
        [self.view addSubview:moviePlayer.view];
        [moviePlayer.moviePlayer play];
    

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 2012-05-14
      • 1970-01-01
      • 2011-04-30
      相关资源
      最近更新 更多