我目前正在使用以下代码在我的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()
}
}
答案 0 :(得分:0)
将try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
添加到您的代码中。
AVAudioSessionCategoryAmbient
"播放声音,增加了修饰或兴趣,但对应用程序的使用并不重要。"