在播放应用音乐时播放Xcode中的声音

时间:2017-03-13 10:56:27

标签: swift xcode sprite-kit

我目前正在使用以下代码在我的Xcode项目中播放音乐。但是,当我播放音乐时,其他音乐应用程序(例如:spotify)会停止播放。我知道有AVAudioSessionCategoryAmbient,但我不确定如何在我的代码中设置此功能。

如何在不停止当前播放的其他应用的音乐的情况下在我的应用中播放音乐?

非常感谢任何帮助:D

谢谢!

import UIKit

import AVFoundation


let appDelegate = UIApplication.shared.delegate as! AppDelegate

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


  /* MUSIC */

var musicIsPlaying: Bool = false
var bgMusicLoop: AVAudioPlayer!

func playBackgroundMusic(fileName: String, withExtenstion fileExtension: String) {


    let appDelegate = UIApplication.shared.delegate as! AppDelegate


    if appDelegate.musicIsPlaying == false {

        appDelegate.musicIsPlaying = true

        let filePath: String = Bundle.main.path(forResource: fileName, ofType: fileExtension)!

        if (appDelegate.bgMusicLoop != nil) {
            appDelegate.bgMusicLoop.stop()
        }
        appDelegate.bgMusicLoop = nil

        do {

            appDelegate.bgMusicLoop = try AVAudioPlayer(contentsOf: NSURL.fileURL(withPath: filePath))

        } catch {
            print(error)
        }

        //A negative means it loops forever
        appDelegate.bgMusicLoop.numberOfLoops = -1
        appDelegate.bgMusicLoop.prepareToPlay()
        appDelegate.bgMusicLoop.play()
    }
}

1 个答案:

答案 0 :(得分:0)

try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)添加到您的代码中。

AVAudioSessionCategoryAmbient"播放声音,增加了修饰或兴趣,但对应用程序的使用并不重要。"