MPMoviePlayerController给我一个黑色的空视图,没有视频播放

Pen*_* Li 9 mpmovieplayercontroller ios

iOS 5.1,这里是代码:

 MPMoviePlayerController *player =
    [[MPMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString:@"map.mp4"]];
    [player prepareToPlay];
    [player.view setFrame: self.view.bounds];  // player's frame must match parent's
    [self.view addSubview: player.view];
    // ...
    [player play];
Run Code Online (Sandbox Code Playgroud)

事实上,这和苹果参考说的一样,但是当我点击按钮使用这个功能时,只有一个黑色矩形停留在那里,没有视频播放,没有声音发生,也没有暗恋,所以我想要知道如何使这项工作

Sur*_*rma 17

很抱歉很晚才回复.解决方案有点奇怪.但它帮助我在面对同样的问题时继续前进.

MPMovieSourceTypeStreaming 是你错过的东西.

MPMoviePlayerController *player =
[[MPMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString:@"map.mp4"]];
[player prepareToPlay];
[player.view setFrame: self.view.bounds];  // player's frame must match parent's
player.movieSourceType    = MPMovieSourceTypeStreaming;
[self.view addSubview: player.view];
// ...
[player play];
Run Code Online (Sandbox Code Playgroud)

  • 我的问题是我没有设置movieSourceType属性.如果它对任何人有帮助.确保你设置了该属性.默认情况下,它必须设置为MPMovieSourceTypeUnknown.当我把它放到MPMovieSourceTypeFile.它对我有用. (4认同)

Din*_*esh 1

尝试下面的代码来播放项目资源中的视频:

  NSBundle *bundle = [NSBundle mainBundle];
  NSString *moviePath = [bundle pathForResource:@"map" ofType:@"mp4"];
  NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain];

  MPMoviePlayerController *player =
  [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
  [player prepareToPlay];
  [player.view setFrame: self.view.bounds];  // player's frame must match parent's
  [self.view addSubview: player.view];
    // ...
  [player play];
Run Code Online (Sandbox Code Playgroud)

谢谢..!