我创建了一个应用程序,并试图允许用户在玩游戏时继续听他们的音乐,但是只要他们点击“播放”并且出现游戏中的声音,它将停止背景音乐。我正在使用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() } }
您需要AVAudioSession使用以下值之一设置类别:https : //developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/index.html(AVAudioSession类参考)。
AVAudioSession
默认值设置为AVAudioSessionCategorySoloAmbient。如您所见:
AVAudioSessionCategorySoloAmbient
[…]使用此类别表示您的应用程序的音频是不可混合的- 激活您的会话将中断其他同样不可混合的音频会话。要允许混合,请改用AVAudioSessionCategoryAmbient类别。
AVAudioSessionCategoryAmbient
在播放声音之前,您必须更改类别。为此:
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient, error: nil) AVAudioSession.sharedInstance().setActive(true, error: nil)
您无需在每次播放声音时都拨打这些线路。 您可能只想做一次。