无法让MPMoviePlayerViewController播放我的媒体文件

时间:2010-07-07 04:00:59

标签: iphone objective-c mpmovieplayercontroller

让MPMoviePlayerViewController工作时遇到一些问题。我有两个指向同一Quicktime电影的示例网址。注释掉的URL不起作用;另一个工作正常。

我通过Fiddler进行了监控,我在标题/等中看不到任何问题。

基本上我正试图找出一种方法来播放具有某种安全性的Azure托管媒体文件;要么通过WCF服务。有谁知道这个?我把头发拉了出来。

//NSString *moviePath = [[NSString alloc] initWithString:@"http://www.nov8rix.com/Services/CPipeline.svc/Media/42"];

NSString *moviePath = [[NSString alloc] initWithString:@"http://nov8rixstorage.blob.core.windows.net/searchpad/tutorial_portrait.mov"];

NSURL *url = [NSURL URLWithString:moviePath];
[url retain];

MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

[self presentMoviePlayerViewControllerAnimated:mp];
[mp release];
[url release];

更新:这是我收到的错误:

NSConcreteNotification 0x892e540 {name = MPMoviePlayerPlaybackDidFinishNotification; object = <MPMoviePlayerController: 0x8921570>; userInfo = {
    MPMoviePlayerPlaybackDidFinishReasonUserInfoKey = 1;
    error = "Error Domain=MediaPlayerErrorDomain Code=-12939 \"The server is not correctly configured.\" UserInfo=0x892ecb0 {NSLocalizedDescription=The server is not correctly configured.}";

网上的简短搜索提到我的问题可能是我的媒体连接不支持字节范围请求。这可能是真的。有没有办法允许使用WCF进行范围请求?

2 个答案:

答案 0 :(得分:0)

我终于让这个工作了!它无法工作的原因是因为我的WCF服务不支持范围请求。显然,iPhone电影流需要范围请求。

我更改了我的实现,以通过SAS URL直接向Azure blob存储请求。到目前为止工作!

答案 1 :(得分:0)

感谢您发布答案。我的MPMoviePlayerViewController出现了同样的错误,当我添加对我的php mp4文件流媒体的Range Requests支持时,我的问题也得到了解决。将媒体流式传输到iPHone需要一些特定的标头,否则会出现“服务器配置不正确”错误。

我在这里找到了一些关于php Range Requests支持的很好的提示: fread, (PHP 4, PHP 5), fread — Binary-safe file read