2016-12-05 109 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