Swift - AVAudioPlayer在设备静音时仍然播放声音?

Luk*_*tin 7 silent avaudioplayer ios swift xcode6

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

var audioPlayer = AVAudioPlayer()
Run Code Online (Sandbox Code Playgroud)

然后在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()
Run Code Online (Sandbox Code Playgroud)

当声音播放时:

audioPlayer.play()
Run Code Online (Sandbox Code Playgroud)

当设备处于静音状态或切换到静音状态时,我需要做些什么才能停止播放声音?也许在audioPlayer.play()检测设备是否处于静音状态的if语句之前?

Luk*_*tin 17

在第二行和第三行代码中找到了错误:

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
Run Code Online (Sandbox Code Playgroud)

我不得不换AVAudioSessionCategoryPlaybackAVAudioSessionCategoryAmbient

希望这有助于其他可能遇到同样问题的人:)