【发布时间】:2016-05-04 16:15:10
【问题描述】:
嘿嘿
我一直在寻找解决这个问题的方法,但基本上还没有解决方案。
我迫切需要一种方法来实例化并随时播放声音,而不会切断任何其他声音。我知道 AVAudioPlayer 一次只能播放一种声音,所以我试图弄清楚如何制作一个动态的 AVAudioPlayer 数组,我可以在需要播放声音的任何时候添加它。我当前的代码是从这个网站上的另一个答案中得到的,是这样的:
func Sound(sound: String) {
do {
if let bundle = NSBundle.mainBundle().pathForResource(sound, ofType: "wav") {
let alertSound = NSURL(fileURLWithPath: bundle)
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
try AVAudioSession.sharedInstance().setActive(true)
try audioPlayer = AVAudioPlayer(contentsOfURL: alertSound)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
} catch {
print(error)
}
}
不幸的是,这不起作用。它会播放声音,但会停止播放任何其他声音。
基本上,我只需要一个与 Swift 2 保持同步的代码 sn-p,它可以让我播放声音而不会切断任何其他正在播放的声音。就算两次都是一样的音效。
【问题讨论】:
-
一个玩家播放一个声音。如果您想要同时发出两种声音……请使用两个播放器。 :)
-
是的!我知道!我遇到的问题是制作一组 AVAudioPlayers,这样我就可以一次播放多个声音。请参阅:我在底部发布的链接。
标签: swift swift2 avaudioplayer