声音在模拟器中工作,而不是在真实 iPhone 中工作
有一些简短的音效样本,在模拟器中播放得很好,但在真实的iPhone 3GS中根本就不行。以下是来自 Apple SysSound 示例的代码:
CFBundleRef mb = CFBundleGetMainBundle ();
CFURLRef soundFileURLRef = CFBundleCopyResourceURL
(mb, CFSTR("mySound"), CFSTR ("caf"), NULL);
SystemSoundID sid;
AudioServicesCreateSystemSoundID(soundFileURLRef, &sid);
AudioServicesPlaySystemSound(sid);
使用 iPhone 时,我可以听到按键声和来自 iTunes 的音乐(不尝试在播放声音的同时使用) - 但根本听不到我的声音。 Vibra 工作正常,因此即使是框架也应该正确设置。
甚至尝试了 SoundEffect.h/m 示例代码,没有任何变化。使用相同的声音文件,但 CAF 应该没问题,特别是当它在模拟器中播放时?
接下来我可以尝试什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试转换为其他格式,例如 wav 或 mp3,然后再次播放。如果您想使用 caf,请确保您在 Terminal.app 中正确格式化了 caf:
Try converting to a different format such as wav or mp3, then play again. If you want to use caf, Make sure you are formatting the caf correctly in Terminal.app:
作为旁注 - 我遇到了完全相同的问题,并且花了大约一个小时将文件转换为正确的格式等。但问题是 iPad 上的“静音”开关。所以即使音量调大了,我也能听到iPad上的其他声音,但因为静音开关打开了,所以它并没有播放系统声音。
更让人困惑的是,这个应用程序使用文本转语音,并且来自转录的音量非常好,只是来自
AudioServicesPlaySystemSound()
的声音我听不到。Just as a sidenote - I was having the exact same problem and spent probably close to an hour on converting files to the correct format, etc.. Yet the problem was the "mute" switch on the iPad. So even though the volume was up, and I could hear other sounds on the iPad, because the mute switch was turned on, it wasn't playing system sounds.
To add to the confusion, this app uses text-to-speech and the volume coming from the transcription was perfectly fine, it was only the sounds coming from
AudioServicesPlaySystemSound()
that I couldn't hear.有点不太可能,但请记住,手机的文件系统区分大小写,而 Mac 的文件系统通常不区分大小写。仔细检查您的文件名
kind of a long shot, but remember that the phone's file system is case sensitive, while the mac's usually isn't. Double check your file name
找到了更简单的解决方案:使用 AIF 声音文件:
这是我正在使用的代码,以及 Apple 示例的 >SoundEffect.h 和 SoundEffect.m BubbleLevel:
现在相同的代码 - 和声音效果 - 在模拟器和硬件中工作。顺便说一句,不要忘记切换回原来的 iTunes 设置!
Found an easier solution: use AIF sound files:
Here's code I'm using, together with SoundEffect.h and SoundEffect.m from Apple sample BubbleLevel:
Now same code - and sound effects - work in both emulator and hardware. Btw don't forget to switch back your original iTunes settings!