我的应用目前正根据铃声音量播放声音。许多用户看到它的音板应用程序很烦人。我注意到,当广告弹出一个视频时,音量控制会在关闭广告并恢复使用该应用后更改为系统音量。考虑到这一点,我希望在启动应用程序时使用通过AVAudioPlayer播放的虚拟(静音)声音,有点欺骗它使用系统声音控制器而不是振铃器。这是我当前用来播放声音的代码:
func playSound(fNameOnly : String, sFileExt : String = "mp3"){
let soundUrl = NSBundle.mainBundle().URLForResource(fNameOnly, withExtension: sFileExt)
var SSID : SystemSoundID = 0
if gSoundsOn && soundUrl != nil {
AudioServicesCreateSystemSoundID(soundUrl!, &SSID)
AudioServicesPlaySystemSoundWithCompletion(SSID){
AudioServicesDisposeSystemSoundID(SSID)
self.soundComplete(SSID)
}
self.soundArray.append(SSID)
}
}
我希望有人可以帮助我创建一个func /方法,在启动/打开应用程序时通过AVAudioPlayer播放虚拟声音片段。
答案 0 :(得分:0)
我也有这个问题。
问题是AudioServicesPlaySystemSound总是使用铃声音量,而AVAudioPlayer使用音量设置。在SystemSound之前播放AVAudio声音不会改变该行为。它可能会出现这种情况,因为现在当您按下音量按钮时,会弹出“音量”控件..但您会注意到它对正在播放的系统声音没有影响。这是一个真正的痛苦。
目前,我让用户知道他们需要将设备上的铃声设置为“随按钮更改”。这允许他们在游戏中改变铃声的音量。在我看来,仍然不是一个很好的解决方案我担心唯一的解决方案就是将AVAudioPlayer用于所有声音......当你需要快速声音时(比如按一下按钮),这可能会有一些不良延迟。