Ios 我想在不停止另一个应用程序背景音乐播放的情况下制作音效
我目前正在用SwiftUI开发一个应用程序。 有一个功能,当你点击它时会播放声音效果。 当我在实际设备上测试时,后台播放的Spotify音乐停止了。是否可以使用AVFoundation在不停止音乐的情况下播放音效?另外,如果有更好的方法来实现这一点,请帮助我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) {
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
),因此值得阅读这些文档。谢谢!!我们完成了!我是初学者,所以这很有帮助。