我正在iPad上播放一些简短的声音:Play a short sound in iOS
我正在使用caf
文件,我可以从Finder中成功播放。现在我经历了相当多的麻烦,试图实现声音的播放,我很好奇可能是我似乎无法理解的问题:
选项1:当我创建SystemSoundID然后立即播放时,我在设备和模拟器上听不到任何声音。
选项2:当我为SystemSoundID创建一个实例变量并在viewDidLoad
中初始化时,我设法播放声音,但仅限于iPad,而不是模拟器。
选项3:我也可以使用AVAudioPlayer播放SystemSoundID
文件,然后在iPad和模拟器上工作,而不是使用.wav
我在这里需要创建AVAudioPlayer viewDidLoad
如果我一口气完成所有事情,我就不会发出任何声音。
最佳选项目前似乎是Option 3
,因为它适用于模拟器和iPad,但因为我需要预先初始化播放器,我需要一个AVAudioPlayer
实例来处理每个不同的声音我想玩,这似乎不是很记忆......
是否存在我缺少的内容,是否可以使用AudioToolbox
框架(选项1和选项2)在两个平台上播放声音
答案 0 :(得分:3)
我写了一个库来简化这一切。它包装了AVAudioPlayer,并且在设备和模拟器上都能正常工作。
https://github.com/nicklockwood/SoundManager
代码相当简单,虽然我做了一些半聪明的东西来初始化音频播放器。如果您不想使用该库,则可以复制代码。
一句警告 - 模拟器在您使用AVAudioPlayer时会在内部抛出一些奇怪的异常。它们根本不会影响应用程序,但是如果您在Xcode中启用了例外突破,则应用程序将在启动期间进入调试器几次并且您必须手动恢复,这可能是如果你不期待它就会吓坏你。