使用 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)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”