11

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

AudioServicesPlaySystemSound (soundFileObject);

但有时它不播放。

是什么原因?

4

6 回答 6

16

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

于 2010-04-27T17:01:32.687 回答
5

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

于 2012-08-15T09:06:01.167 回答
3

基于 user1056521 的回答,使用以下代码:

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

你打电话时得到soundID的价值在哪里。SystemSoundIDAudioServicesCreateSystemSoundID()

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

于 2016-08-30T10:18:29.333 回答
2

System Preferences → Sound → [x] Play user interface sound — 这个复选框对我也有帮助,它解决了 AudioServicesPlaySystemSound(_) 问题。但值得注意的是,示例 Apple Xcode 项目“SysSound”在不选中此框的情况下工作得很好。我正在使用 Xcode 4.4.1 从头开始​​创建自己的应用程序。使用新旧 Xcode 工具创建的项目之间是否存在差异?

于 2012-08-13T18:24:11.787 回答
0

在设备上,进入设置并打开声音->铃声和警报的音量

于 2012-12-15T01:49:37.110 回答
0

对于那些稍后访问此问题的人,

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

AudioServicesPlayAlertSoundID()的音量是基于系统响铃在大约的范围内0.3 ~ 1.0

于 2018-09-21T09:13:24.453 回答