斯威夫特3声音播放
好吧我已经研究过这个,并尝试了许多不同的方式来播放声音时,单击一个按钮。斯威夫特3声音播放
当我在swift 3中点击一个按钮时,如何播放声音? 我有我的声音一个名为声音文件夹中,名称为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)
}
}
第一进口AudioToolbox 进口AVFoundation
希望工程:)
这是我的错误。 @Amit Rawat – shane
致命错误:意外发现零,同时展开一个可选值 (lldb) – shane
这是代码func playSound(){ let url = Bundle.main.url(forResource:“ClickSound”,withExtension:“mp3” )! 做{ 让玩家=尝试AVAudioPlayer(contentsOf:URL) 后卫球员==播放其他{}回报 player.prepareToPlay() player.play() }赶上让误差NSError { 打印(错误.description) } } – shane
你必须避免玩家被处置,并将其置于你的视图控制器的属性中
The only real catch is that you must store your player as a property or other variable that won't get destroyed straight away – if you don't, the sound will stop immediately.
var player : AVAudioPlayer?
func playSound(){
let path = Bundle.main.path(forResource: "alert", ofType:"mp3")!
let url = URL(fileURLWithPath: path)
do {
let sound = try AVAudioPlayer(contentsOf: url)
self.player = sound
sound.numberOfLoops = 1
sound.prepareToPlay()
sound.play()
} catch {
print("error loading file")
// couldn't load file :(
}
}
你对破坏财产的评论拯救了我。谢谢。 – Lengo
@LDD你非常欢迎,我很高兴我可以帮助:) –
更简单的方法做,这是把下面的代码行中的按钮按下的功能(注:只在精灵套件作品):
run(SKAction.playSoundFileNamed("ClickSound.mp3", waitForCompletion: false))
希望这有助于:)
这是一个老问题听起来很容易,但它可以被提及的是,使用WAV或CAF音频格式(而不是MP3)的简称声音的推荐方式。 – Whirlwind
@Whirlwind你能解释为什么吗?实际上,我对此非常感兴趣,因为我有一个应用程序,正在使用我正在为他们使用mp3的短音。感谢您向我指出这一点! – SRMR
@SRMR在iOS上只是谷歌关于压缩和解压缩格式。例如,一个wav文件没有压缩,意味着你会得到最好的质量,低cpu影响,但是磁盘空间消耗很大。所以这对于短音非常理想,因为它们不占用光盘上的太多空间。另一方面,mp3是压缩的,所以它会保存你的磁盘空间,这意味着它会保持你的应用程序的大小很低,但它会被解压缩为ram,并且在解压缩时它将占用与未压缩声音相同数量的空间。此外,解压缩对CPU有一定的影响......希望这对你有意义。 – Whirlwind