【问题标题】:Play video stored in NSData播放存储在 NSData 中的视频
【发布时间】:2012-02-14 21:54:22
【问题描述】:

我正在尝试播放存储在 NSData 对象中的视频。我将文件保存到我的应用程序临时文件夹,然后尝试播放它,但我得到的只是黑屏。稍后我可以浏览到该文件夹​​并播放该文件,因此我知道该文件已被写入并受支持。

这是我的代码:

NSString *urlString = [NSTemporaryDirectory() stringByAppendingPathComponent:@"test.m4v"];
NSURL *url = [[NSURL alloc] initWithString:urlString];

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: url];
[moviePlayer prepareToPlay];
moviePlayer.view setFrame: self.view.bounds];
[self.view addSubview: moviePlayer.view];
[moviePlayer play];

我唯一能想到的是文件需要一些时间才能被写入,并且玩家会在完成之前尝试访问它。这可能吗?如果可以,我该如何解决?

【问题讨论】:

  • 你能显示你实际写入文件的代码吗?
  • [videoData writeToURL:url atomically:NO];这就是写入文件所需的一切。

标签: iphone mpmovieplayercontroller nsdata


【解决方案1】:

在处理文件时,您应该告诉NSURL URL 应该指向一个 文件:

NSString *urlString = [NSTemporaryDirectory() stringByAppendingPathComponent:@"test.m4v"];
NSURL *url = [NSURL fileURLWithPath:urlString];

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: url];
[moviePlayer prepareToPlay];
moviePlayer.view setFrame: self.view.bounds];
[self.view addSubview: moviePlayer.view];
[moviePlayer play];

【讨论】:

  • 非常感谢。解决了一切。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多