Ios 我想在不停止另一个应用程序背景音乐播放的情况下制作音效

Ios 我想在不停止另一个应用程序背景音乐播放的情况下制作音效,ios,iphone,swiftui,uikit,Ios,Iphone,Swiftui,Uikit,我目前正在用SwiftUI开发一个应用程序。 有一个功能,当你点击它时会播放声音效果。 当我在实际设备上测试时,后台播放的Spotify音乐停止了。是否可以使用AVFoundation在不停止音乐的情况下播放音效?另外,如果有更好的方法来实现这一点,请帮助我 import Foundation import AVFoundation var audioPlayer: AVAudioPlayer? func playSound(sound: String, type: String) {

我目前正在用SwiftUI开发一个应用程序。 有一个功能,当你点击它时会播放声音效果。 当我在实际设备上测试时,后台播放的Spotify音乐停止了。是否可以使用AVFoundation在不停止音乐的情况下播放音效?另外,如果有更好的方法来实现这一点,请帮助我

import Foundation
import AVFoundation

var audioPlayer: AVAudioPlayer?

func playSound(sound: String, type: String) {

    if let path = Bundle.main.path(forResource: sound, ofType: type) {
        do {
            audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
            audioPlayer?.play()

           
        } catch {
            print("ERROR:Could not find and play the sound file.")
        }
       
    }
}

将AVAudioSession类别选项设置为
.mixWithOthers

let audioSession = AVAudioSession.sharedInstance()
do {
    try audioSession.setCategory(.ambient, mode: .default, options: [.mixWithOthers])
} catch {
    print("Failed to set audio session category.")
}

audioSession.setActive(true) // When you're ready to play something
ambient
表示声音对该应用程序并不重要。默认值为
soloAmbient
,不可混合。(您可以在此处将类别设置为
ambient
,您将免费获得
与其他人的混音。我不经常使用该模式,因此我不记得默认情况下获得了多少)。如果声音很关键,请查看模式
。播放

通常,在应用程序中设置一次类别,然后根据需要将会话设置为活动或非活动。如果我没记错的话,AVAudioPlayer将自动激活会话,因此您可能不需要这样做(我通常在较低的级别上工作,并不总是记得高级工具会自动执行哪些操作)。但是,如果应用程序的不同功能有不同的需求,则更改类别是合法的


有关详细信息,请参阅和。声音播放有很多选项,其中许多选项并不明显(还有一些名称非常混乱,我正在看你
.allowBluetooth
),因此值得阅读这些文档。

谢谢!!我们完成了!我是初学者,所以这很有帮助。