我正在制作一个相当基本的应用程序,并且一直在探索如何使用AVAudioPlayer在我的应用程序中播放声音,但是我遇到一个问题,即使设备处于静音状态,它也可以播放声音。这是我正在使用的代码:

var audioPlayer = AVAudioPlayer()

然后在View中加载:
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
var error:NSError?
var beepOne = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("menu", ofType: "wav")!)
audioPlayer = AVAudioPlayer(contentsOfURL: beepOne, error: &error)
audioPlayer.prepareToPlay()

当播放声音时:
audioPlayer.play()

当设备处于“静音”或切换为“静音”状态时,我该怎么做才能停止播放声音?也许在audioPlayer.play()之前,是否有一个if语句来检测设备是否处于静默状态?

最佳答案

在第二和第三行代码中发现了问题所在:

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)

我不得不将AVAudioSessionCategoryPlayback更改为AVAudioSessionCategoryAmbient
希望这可以帮助其他可能遇到相同问题的人:)

关于ios - Swift-当设备处于静音状态时,AVAudioPlayer仍在播放声音吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28496758/

10-12 14:45