所以我目前的情况是每当我按下一个按钮时,声音将从头开始重新开始并切断已播放的声音。我想要的是当我按下按钮时自己播放的声音,所以如果我在第一次之后第二次按下它,第二次声音将在第一次播放而不是将其切掉。如果您需要澄清我的需求,请告诉我。到目前为止,这是我的代码:
@IBAction func bull(_ sender: Any) {
let url = Bundle.main.url(forResource: "Bull", withExtension: "mp3")!
do
{
player = try AVAudioPlayer(contentsOf: url)
guard let player = player else { return }
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
player.prepareToPlay()
player.play()
}
catch let error
{
print(error.localizedDescription)
}
}
感谢。
答案 0 :(得分:2)
一个玩家一次只能播放一个声音。您可能需要执行以下操作
创建一个players
var arrPlayer: [AVAudioPlayer] = []
然后在你的方法中执行以下操作
let url = Bundle.main.url(forResource: "Bull", withExtension: "mp3")!
do
{
player = try AVAudioPlayer(contentsOf: url)
arrPlayer.append(player)
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
try AVAudioSession.sharedInstance().setActive(true)
arrPlayer.last?.prepareToPlay()
arrPlayer.last?.play()
}
catch let error
{
print(error.localizedDescription)
}