0

我在播放来自互联网的视频时收到标题中提到的这个错误。

- (void)viewDidLoad
{  
  NSString *urlAdress = [NSString stringWithFormat:@"http://www.dailymotion.com/video/x108t8t"];
  //NSString *urlAdress = [[NSBundle mainBundle] pathForResource:@"video8" ofType:@"mp4"];in this case video plays.
  NSURL *videoURL = [NSURL fileURLWithPath:urlAdress];
  self.mpvc = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];  

  [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlaybackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:nil];

  self.mpvc.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
  //when using file in resources use MPMovieSourceTypeFile,when online then streaming
  [self presentMoviePlayerViewControllerAnimated:mpvc];
  [super viewDidLoad];
}
//and here is moviePlaybackDidFinish method    
- (void)moviePlayBackDidFinish:(NSNotification *)notification
{
MPMoviePlayerController *theMovie = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
                                                name:MPMoviePlayerPlaybackDidFinishNotification
                                              object:theMovie];
[theMovie stop];
[theMovie.view removeFromSuperview];
 NSLog(@" playback finish Called......");

}

这是完整的代码。我已经阅读了大部分教程,stackoverflow 问题,但无法获得单一的解决方案

4

2 回答 2

0

没有为您引用的案例正确创建您的 URL。

您正在尝试播放远程流,因此 URL 需要是远程的。

本地文件 URL 是使用fileURLWithPath. 远程 URL 是使用URLWithString.

本地文件 URL

NSURL *videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video8" ofType:@"mp4"]];

远程网址

NSURL *videoURL = [NSURL URLWithString:@"http://www.dailymotion.com/video/x108t8t"];
于 2013-05-29T16:45:19.773 回答
0

好吧,这个问题似乎很多关于堆栈溢出,我有一个解决方案。大多数面临相同问题的人都有正确的代码,但唯一的问题是我们忘记添加 dailymotion、vimeo 框架。因为它们提供了自己的框架 sdk,您可以从下面的链接下载它们并将它们添加到您的项目中。

http://www.dailymotion.com/doc/api/sdk-objc.html

于 2013-05-30T07:04:27.660 回答