控制系统声音的音量

Control volume of system sound

我有以下代码用于在点击按钮时播放点击。

private var clickSound: SystemSoundID!

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

AudioServicesPlaySystemSound(clickSound)

无论设备的音量如何以及设备是否静音,此声音都以相同的音量播放。

这真的是两个问题。

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

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

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

您可以获得系统卷

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

音量的值是从 0.0 到 1.0