我正在使用 AudioToolBox 播放一个小的 .wav 文件。
AudioServicesPlaySystemSound (soundFileObject);
但有时它不播放。
是什么原因?
我正在使用 AudioToolBox 播放一个小的 .wav 文件。
AudioServicesPlaySystemSound (soundFileObject);
但有时它不播放。
是什么原因?
如果您在模拟器中,请确保在 System Prefrences → Sound 中,“播放用户界面音效”没有关闭。如果您在设备上,请检查振铃开关是否未设置为静音。
也许是这个问题?AudioServicesDisposeSystemSoundID()
将在播放前停止声音工作。
基于 user1056521 的回答,使用以下代码:
AudioServicesPlaySystemSoundWithCompletion(soundID, ^{
AudioServicesDisposeSystemSoundID(soundID);
});
你打电话时得到soundID
的价值在哪里。SystemSoundID
AudioServicesCreateSystemSoundID()
完成块确保声音在被处理之前已播放并完成播放。
System Preferences → Sound → [x] Play user interface sound — 这个复选框对我也有帮助,它解决了 AudioServicesPlaySystemSound(_) 问题。但值得注意的是,示例 Apple Xcode 项目“SysSound”在不选中此框的情况下工作得很好。我正在使用 Xcode 4.4.1 从头开始创建自己的应用程序。使用新旧 Xcode 工具创建的项目之间是否存在差异?
在设备上,进入设置并打开声音->铃声和警报的音量
对于那些稍后访问此问题的人,
AudioServicesPlaySystemSoundID()
的音量是基于系统响铃范围的0.1 ~ 1.0
,而不是 mediaVolume
AudioServicesPlayAlertSoundID()
的音量是基于系统响铃在大约的范围内0.3 ~ 1.0