3

我的MPMoviePlayerControlleriOS 应用程序中有一个流式传输来自 Amazon S3 的视频。视频播放正常,但似乎在设备上(我用 iOS 6 测试过,不确定其他设备),音频无法播放。音频在模拟器上工作正常,只是在设备上不行。

有人有什么想法吗?这是我的代码:

// Construct the video's URL
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://s3.amazonaws.com/<mybucket>/%d.m4v",videoFileNumber]];
vidPlayer = [[MPMoviePlayerController alloc] initWithContentURL: url];

// Set up the video player
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:vidPlayer];

vidPlayer.scalingMode = MPMovieScalingModeAspectFill;
vidPlayer.controlStyle = MPMovieControlStyleDefault;
vidPlayer.shouldAutoplay = YES;

[self.view addSubview:vidPlayer.view];
[vidPlayer setFullscreen:YES animated:YES];

谢谢!

4

1 回答 1

5

你忘了说prepareToPlay。这个电话是绝对必要的。我并不是说它一定会解决问题,但它很有可能,而且你绝对必须在现代 iOS 系统上调用它。

另外:要确切地找出问题所在,您必须注册通知。MPMoviePlayerPlaybackDidFinishNotification很好,但我强烈建议您至少也要注册一次MPMoviePlayerLoadStateDidChangeNotification

此外,我不得不建议,由于没有播放音频,但正在播放视频,您可能需要关注这部电影中包含的音频格式。该设备对可以播放的音频格式有一些令人惊讶的隐藏限制:例如,过度压缩的音频会给它带来麻烦。

于 2013-05-09T16:18:39.883 回答