小编典典

在使用Swift的情况下,如何允许背景音乐继续播放,而我的应用仍在播放声音

swift

我创建了一个应用程序,并试图允许用户在玩游戏时继续听他们的音乐,但是只要他们点击“播放”并且出现游戏中的声音,它将停止背景音乐。我正在使用Swift在iOS上进行开发。这是一段启动游戏内声音的代码。

func playSpawnedDot() {
    var alertSound: NSURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("spawnDot", ofType: "mp3")!)!
    var error:NSError?
    audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
    audioPlayer.prepareToPlay()

    if volumeBool {
        audioPlayer.play()
    }
}

阅读 406

收藏
2020-07-07

共1个答案

小编典典

您需要AVAudioSession使用以下值之一设置类别:https
:
//developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/index.html(AVAudioSession类参考)。

默认值设置为AVAudioSessionCategorySoloAmbient。如您所见:

[…]使用此类别表示您的应用程序的音频是不可混合的-
激活您的会话将中断其他同样不可混合的音频会话。要允许混合,请改用AVAudioSessionCategoryAmbient类别。

在播放声音之前,您必须更改类别。为此:

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

您无需在每次播放声音时都拨打这些线路。 您可能只想做一次。

2020-07-07