6

我正处于开发我的第一个 iPad 应用程序的早期阶段,为了简单起见,到目前为止我一直在使用 AudioServicesPlaySystemSound 和相关的函数来播放声音。我的代码基于 Apple 节拍器示例中的 SoundEffect 类。

具体症状是我在模拟器中能听到声音,但在设备上听不到,虽然我已经验证在设备上的其他应用程序中我能听到声音。AudioServicesCreateSystemSoundID 正在返回有效的声音标识符,因此它不像具有不同大小写的声音文件的名称那么简单,即“sound.mp3”与“Sound.mp3”。

我认识到出于不相关的原因我可能需要切换到其他库,例如 OpenAL,但我想知道这里发生了什么。有没有人有什么建议?有没有我可以调用的函数来获取 OSStatus 值或什么?

* BUMP——过去几周我一直在从事其他项目,但我现在又回来了,我真的很感谢你的回答。谢谢。

4

2 回答 2

5

我通过谷歌搜索遇到了这个问题。我的问题与这个问题的标题完全相同:“AudioServicesPlaySystemSound not working on iPad device”。但是,对问题的描述是不同的。

简而言之,将我的 iPad 升级到 iOS 4.3 后,AudioServicesPlaySystemSound 停止工作。

我终于找到了我的问题版本的解决方案,所以希望这对其他人有帮助。

转到 iPad 上的“设置”应用,然后选择“通用”。点击声音。确保“使用按钮更改”设置为开启。这将解决问题。

于 2011-03-15T20:44:38.320 回答
2

我不认为您可以在设备上使用AudioServicesPlaySystemSound. 查看支持的文件类型的文档。我不确定他们为什么在模拟器中正确播放,但我遇到了同样的问题。尝试使用 AVAudioPlayer 代替:

NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"sound" withExtension: @"mp3"] error:&error];
if (error)  {
    NSLog(@"Error creating audio player: %@", [error userInfo]);
} else {
    [audioPlayer play];
}

[audioPlayer release];
于 2010-12-27T18:21:16.380 回答