Swift AVAudioPlayer 不播放声音
Posted
技术标签:
【中文标题】Swift AVAudioPlayer 不播放声音【英文标题】:Swift AVAudioPlayer doesn't play sound 【发布时间】:2015-01-12 07:09:11 【问题描述】:我想在我的 Swift 应用中播放两个声音文件。 “C1_bip.aif”和“false.aif”。 它们都在项目的同一个文件夹中。
但是当我启动应用程序时,会播放 C1_bip 声音,而不会播放虚假声音,并且会在控制台打印错误。
声音文件是相同的文件类型,我可以在 Xcode 的项目资源管理器中播放它们。
if let path = NSBundle.mainBundle().pathForResource("C1_bip", ofType: "aif")
audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path),
fileTypeHint: "aif", error: nil)
if let sound = audioPlayer
sound.prepareToPlay()
sound.play()
else
println("Error")
if let path = NSBundle.mainBundle().pathForResource("false", ofType: "aif")
audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path),
fileTypeHint: "aif", error: nil)
if let sound = audioPlayer
sound.prepareToPlay()
sound.play()
else
println("Error")
【问题讨论】:
这段代码对我来说工作正常。所以检查你添加到项目中的文件。 我不知道怎么了。我将文件放在项目文件夹中,但它不起作用。但是之前存在的那个完美...... 使用此代码,我可以播放这两个文件。所以你应该尝试再次添加 false.aif 文件 并删除那个旧文件 【参考方案1】:这是我在测试项目中所做的:
let musicPath = NSBundle.mainBundle().pathForResource("bgmusic", ofType: "mp3")
let url = NSURL(fileURLWithPath: musicPath!)
do
audioPlayer = try AVAudioPlayer(contentsOfURL: url)
catch _
audioPlayer = nil
audioPlayer.numberOfLoops = -1
audioPlayer.prepareToPlay()
audioPlayer.play()
而且效果很好:)
【讨论】:
以上是关于Swift AVAudioPlayer 不播放声音的主要内容,如果未能解决你的问题,请参考以下文章
AVAudioPlayer Swift 3不播放声音[重复]