我的iOS应用中有一个MPMoviePlayerController
来自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];
谢谢!
答案 0 :(得分:5)
你忘了说prepareToPlay
。这个电话绝对必不可少。我不是说它肯定会解决这个问题,但很可能,你绝对必须在现代iOS系统上调用它。
另外:要确切地知道出了什么问题,你必须注册通知。 MPMoviePlayerPlaybackDidFinishNotification
很好,但我强烈建议您至少MPMoviePlayerLoadStateDidChangeNotification
注册。
此外,我必须建议,由于音频不播放但视频正在播放,您可能需要关注此电影中包含的音频格式。该设备对其可播放的音频格式有一些令人惊讶的隐藏限制:例如,过度压缩的音频会给它带来麻烦。