ios - swift sprite kit - AVAudioPlayer 不能同时播放多个声音

标签 ios audio swift sprite avaudioplayer

我试图同时播放声音,但播放器只是在没有完成的情况下剪切声音并开始播放新的声音,我希望它完成而不是每次新声音开始时都剪切。

我现在有这个:

let dropSound = NSURL(fileURLWithPath:NSBundle.mainbundle().
pathForResource("drop", ofType: "mp3")!)
var audioPlayer = AVAudioPlayer()

每次我想播放声音时我都会这样做

var error:NSError?
audioPlayer = AVAudioPlayer(ContentsOfUrl: dropSound, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()

最佳答案

可能有一种更有效的方法,但您可以对每种声音尝试此方法。我尝试了几种声音,效果很好。如果您不希望声音打断用户正在听的音乐,只需将 AVAdudioSessionCategoryPlayback 更改为 AVAdudioSessionCategoryAmbient

var audioPlayer = AVAudioPlayer()

func playSound() {

var dropSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("drop", ofType: "mp3")!)

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)

var error: NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: dropSound, error: &error)
audioPlayer.prepareToPlay()
}

audioPlayer.play()

关于ios - swift sprite kit - AVAudioPlayer 不能同时播放多个声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478921/

相关文章:

iphone - 如何自定义 TTPostController 操作按钮

audio - FFMPEG:向视频文件添加额外的音轨

ios - 访问 NSManagedObject 数据

swift - 将具有透明度的 UIView(来自 xib)添加到 SceneKit

ios - 如何创建具有动态数量标签的自定义 UITableViewCell

ios - 调整 UITableViewCell 的 NSLayoutConstraint 错误

ios - 使用 Accelerate Framework 根据 RGB 值修改 Alpha

java - 如何使用Java将多个音频流混合到单个记录的流中?

Javascript 对象 - 强制触发事件

ios - 使用 GMUCluster 时自定义图像作为标记