Swift3 快速3声播放

Swift3 快速3声播放,swift3,avfoundation,avaudioplayer,Swift3,Avfoundation,Avaudioplayer,好的,我已经研究了这个问题,并且尝试了许多不同的方法来在点击按钮时播放声音 在swift 3中单击按钮时如何播放声音? 我的声音在一个名为Sounds的文件夹中,名称为ClickSound.mp3用户,位于此功能下方 //MARK:- PLAY SOUND func playSound() { let url = Bundle.main.url(forResource: "ClickSound", withExtension: "mp3")! do { pla

好的,我已经研究了这个问题,并且尝试了许多不同的方法来在点击按钮时播放声音

在swift 3中单击按钮时如何播放声音?
我的声音在一个名为Sounds的文件夹中,名称为ClickSound.mp3

用户,位于此功能下方

 //MARK:- PLAY SOUND
func playSound() {
    let url = Bundle.main.url(forResource: "ClickSound", withExtension: "mp3")!

    do {
        player = try AVAudioPlayer(contentsOf: url)
        guard let player = player else { return }

        player.prepareToPlay()
        player.play()
    } catch let error as NSError {
        print(error.description)
    }
}
首次导入音频工具箱 进口AVF基金会


希望它能起作用:)

您必须防止玩家被处置,将其放入视图控制器的属性中

唯一真正的问题是你必须把你的玩家作为一个属性来存储 或者其他不会立即被破坏的变量–如果 不要,声音会立即停止


一种更简单的方法是在按钮按下功能中输入以下代码行(注意:仅适用于精灵套件):

希望这有帮助:)

您可能需要使用。它可以让你轻松地用Swift播放声音

Sound.play(file: "ClickSound.mp3")

致命错误:在展开可选值(lldb)时意外发现nil这是代码func playSound(){let url=Bundle.main.url(forResource:“ClickSound”,扩展名为:“mp3”)!do{let player=try AVAudioPlayer(contentsOf:url)guard player==player else{return}player.prepareToPlay()player.play()}将let错误捕获为NSError{print(error.description)}}您应该为“player”创建一个全局引用添加var播放器:AVAudioPlayer?var播放器:AVAudioPlayer?将其声明为全局。这是一个老问题,但可以提到,建议使用wav或caf音频格式(而不是mp3)对于短音。@Whirlwind,你能解释一下原因吗?事实上,我对此非常感兴趣,因为我有一个应用程序正在使用短音,目前我正在使用mp3。谢谢你向我指出这一点!@SRMR只是在谷歌上搜索iOS上的压缩和解压缩格式。例如,wav文件没有压缩,意味着你将被压缩最好的质量,低cpu影响,但磁盘空间消耗大。因此,这是短声音的理想选择,因为它们不会占用太多磁盘空间。另一方面,mp3是压缩的,因此它可以节省磁盘空间,这意味着它可以使应用程序的大小保持在较低的水平,但它会被解压缩到ram中,解压缩时会占用相同的sp空间ace作为未压缩的声音。解压也会对cpu产生一定程度的影响…希望这对你们有意义。所以mp3是理想的背景音乐music@Whirlwind这太棒了,谢谢你解释并为我指明了一个方向,我可以找到更多关于now To的信息:压缩和解压缩格式。你对被破坏的属性的评论救了我。谢谢。@非常欢迎借给你,我很高兴能帮上忙:)
run(SKAction.playSoundFileNamed("ClickSound.mp3", waitForCompletion: false))
Sound.play(file: "ClickSound.mp3")