2016-12-05 110 views
-1

点击按钮时,我有以下代码来播放点击。系统声音的控制音量

private var clickSound: SystemSoundID! 

clickSound = createSound("ButtonClick2", soundType: "wav") 

AudioServicesPlaySystemSound(clickSound) 

该声音播放在同一水平,无论设备上的音量和所述设备是否处于静音状态。

这实在是两个问题。

  1. 如何检测设备是否静音?如果设备静音,我不想播放声音。
  2. 如何根据设备的音量调节声音的音量?
+0

'silentSound'你的意思''clickSound完美 –

回答

2

这个不响应用户声音级别的原因是您创建了系统声音。相反,请使用AVAudioPlayer

do { 
    let player = try AVAudioPlayer(contentsOf: soundFileURL) 
    player.play() 
} catch { 
    print("Error") 
} 
+0

。谢谢。 –

+0

我注意到有一点是有点问题。声音确实发挥,大部分。它不会播放前几个按键,有时如果快速按下按钮,声音每隔一段时间都会跳过。如果我在首次运行应用程序时播放咔嗒声,则效果会更好。但这并不是一个理想的解决方案。 –

+0

我认为还有'player.prepare()'命令。 – Tim

0

你可以得到系统卷

let volume = AVAudioSession.sharedInstance().outputVolume 
print("Output volume: \(volume)" 

量的值从0.0到1.0