MPMoviePlayerController音频不在设备上播放但在模拟器上播放

SZH*_*SZH 3 mpmovieplayercontroller ios

我的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];
Run Code Online (Sandbox Code Playgroud)

谢谢!

mat*_*att 5

你忘了说prepareToPlay.这个电话绝对必不可少.我不是说它肯定会解决这个问题,但很可能,你绝对必须在现代iOS系统上调用它.

另外:要确切地知道出了什么问题,你必须注册通知.MPMoviePlayerPlaybackDidFinishNotification很好,但我强烈建议你至少接受调教MPMoviePlayerLoadStateDidChangeNotification.

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