使用 MPMoviePlayerController 和 iOS5 在 iPad 上没有音频,在模拟器中工作
Posted
技术标签:
【中文标题】使用 MPMoviePlayerController 和 iOS5 在 iPad 上没有音频,在模拟器中工作【英文标题】:No audio on iPad with MPMoviePlayerViewController and iOS5, works in the simulator 【发布时间】:2012-01-13 00:17:19 【问题描述】:自从我更新到 ios 5 后,我就无法让 MPMoviePlayerViewController 在 iPad 上播放音频。视频很完美,但听不到音频。我使用什么格式并不重要。这没用。它可以在模拟器中运行,但不能在 iPad 上运行。
- (IBAction)playVideo
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(movieFinishedPlaying:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:[moviePlayer moviePlayer]];
[self presentMoviePlayerViewControllerAnimated:moviePlayer];
其他人有这个问题吗?还是找到了解决办法?
【问题讨论】:
iPad 可能处于静音状态。您是否尝试在 Safari 浏览器中播放视频?检查音量控制附近的开关。 【参考方案1】:这听起来很傻,但我们在团队中遇到了一个问题,即一般 iPad 声音的音量控制已静音,这意味着在我们的应用中播放的视频没有声音,即使通过音乐播放器或网站上的视频效果很好。
要检查此音量控制,您可以调出任务管理器(双击主页按钮),然后向左滑动,有一些音乐控制;检查此屏幕上的静音按钮是否未打开。
【讨论】:
感谢您节省了我的时间。几乎要开始调试问题了.. ;)【参考方案2】:试试这个:
...
moviePlayer.useApplicationAudioSession = NO;
[self presentMoviePlayerViewControllerAnimated:moviePlayer];
【讨论】:
不...!这只是覆盖静音开关。它在 iOS6 中也被弃用了。【参考方案3】:在分配 MPMoviePlayerController 之前设置音频会话将与视频一起播放声音
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
【讨论】:
【参考方案4】:确保视频文件中的音频格式是 iPad 可以播放的。我相信模拟器可以访问主机的编解码器,这可以解释为什么 iPad 可以播放视频但不能播放音频。如this page in the MPMoviePlayerController 文档所述:
如果您使用该类播放音频文件,它会在播放音频时显示带有 QuickTime 徽标的白屏。对于音频文件,此类支持最高 48 kHz 的 AAC-LC 音频和最高 48 kHz 的 MP3(MPEG-1 音频层 3)立体声音频。
【讨论】:
我尝试了几种格式。即使只是一个普通的mp3。所有这些文件都可以在 iOS 4 上正常播放。它们都可以在 iPad 音乐/视频应用程序中正常播放。他们只是在我的应用程序中播放时没有音频。不是文件,是操作系统。 iOS 5 中的某些内容发生了变化。 开个玩笑!!启用了多任务栏左侧的 iPad 静音控件。 (不是开关)即使在所有其他应用程序中都播放音频并且音量已启动,但静音控制会禁用我的应用程序中的音频。一定是个bug。【参考方案5】:我刚刚将侧面的滑动按钮设置为锁定屏幕。然后声音突然响了。
【讨论】:
以上是关于使用 MPMoviePlayerController 和 iOS5 在 iPad 上没有音频,在模拟器中工作的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?