首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声音只在设备上工作,而在模拟器中不起作用。

声音只在设备上工作,而在模拟器中不起作用。
EN

Stack Overflow用户
提问于 2012-04-27 13:08:43
回答 1查看 763关注 0票数 2

我正在我的iPad上播放一些简短的声音,如:Play a short sound in iOS

我正在使用一个caf文件,我可以成功地从查找器播放。现在,我经历了相当多的麻烦,试图实现声音的回放,我很好奇,我似乎不明白的问题是什么:

  • 选项1:当我创建SystemSoundID然后立即播放它时,我在设备和模拟器上没有听到任何声音。
  • 选项2:当我为SystemSoundID创建一个实例变量并在viewDidLoad中初始化它时,我设法播放声音,但只在iPad上播放,而不是在
  • 3上播放:与使用SystemSoundID不同,我还可以使用AVAudioPlayer来播放.wav文件,该文件然后在iPad和模拟器上都能工作,但是这里我需要在viewDidLoad中创建AVAudioPlayer,否则,如果我一次完成所有操作,就不会得到任何声音。

目前最好的选择似乎是Option 3,因为它在模拟器和iPad上都能工作,但是由于我需要预先初始化播放器,我需要一个AVAudioPlayer实例来处理我想要播放的每一个不同的声音,这似乎不是很好的内存.

是否有什么是我缺少的,是否可以使用AudioToolbox框架(选项1和选项2)在两个平台上播放声音?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-02 16:18:44

我写了一个库来简化这一切。它封装了AVAudioPlayer,并且在设备和模拟器上都工作得很好。

https://github.com/nicklockwood/SoundManager

代码相当简单,虽然我做了一些半聪明的东西来初始化音频播放器。如果不想使用库,只需复制代码即可。

不过,这是一个警告--当您使用AVAudioPlayer时,模拟器会在内部抛出一些奇怪的异常。它们根本不影响应用程序,但是如果你在Xcode中启用了中断异常,那么在启动过程中,应用程序会出现在调试器中几次,你将不得不手动恢复,如果你没有预料到的话,这可能会吓到你。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10351199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档