AudioServicesPlaySystemSound不播放声音

时间:2010-04-27 11:14:18

标签: objective-c audiotoolbox

我正在使用AudioToolBox播放一个小的.wav文件。

AudioServicesPlaySystemSound (soundFileObject);

但有时它不会播放。

是什么原因?

6 个答案:

答案 0 :(得分:15)

如果您在模拟器中,请确保在System Prefrences→Sound中,“播放用户界面音效”未关闭。如果您在设备上,请检查振铃开关是否未设置为静音。

答案 1 :(得分:5)

也许这是this问题? AudioServicesDisposeSystemSoundID()将在播放前停止声音工作。

答案 2 :(得分:2)

系统偏好设置→声音→[x]播放用户界面声音 - 此复选框也对我有帮助,它解决了AudioServicesPlaySystemSound(_)问题。但值得注意的是,样本Apple Xcode项目“SysSound”工作得很好而没有选中此框。我正在使用Xcode 4.4.1从头开始创建自己的应用程序。使用较旧和较新的Xcode工具创建的项目之间是否存在差异?

答案 3 :(得分:2)

在user1056521的答案基础上,使用以下代码:

AudioServicesPlaySystemSoundWithCompletion(soundID, ^{
    AudioServicesDisposeSystemSoundID(soundID);
});

其中soundID是您拨打SystemSoundID时获得的AudioServicesCreateSystemSoundID()值。

完成功能块确保声音在处理之前播放并完成播放。

答案 4 :(得分:0)

在设备上,进入设置并调高Sounds-> Ringer and Alerts

上的音量

答案 5 :(得分:0)

对于以后访问此问题的人,

AudioServicesPlaySystemSoundID()的音量基于0.1 ~ 1.0范围内的系统Ringer,而不是mediaVolume

AudioServicesPlayAlertSoundID()的音量基于系统振铃,范围约为0.3 ~ 1.0