我的ViewController
中有一个非常简单的单 View Swift应用程序中的代码:
var audioPlayer = AVAudioPlayer()
@IBAction func playMyFile(sender: AnyObject) {
let fileString = NSBundle.mainBundle().pathForResource("audioFile", ofType: "m4a")
let url = NSURL(fileURLWithPath: fileString)
var error : NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
audioPlayer.delegate = self
audioPlayer.prepareToPlay()
if (audioPlayer.isEqual(nil)) {
println("There was an error: (er)")
} else {
audioPlayer.play()
NSLog("working")
}
我添加了
import AVFoundation
,并且audioPlayer
是全局变量。当我执行代码时,它确实会打印“正在工作”,因此它可以顺利通过,但不会播放声音。设备不会处于静音状态。 最佳答案
您的代码有太多错误,以至于Socratic方法崩溃了。仅仅将其丢弃并显示给您可能是最简单的:
var player : AVAudioPlayer! = nil // will be Optional, must supply initializer
@IBAction func playMyFile(sender: AnyObject?) {
let path = NSBundle.mainBundle().pathForResource("audioFile", ofType:"m4a")
let fileURL = NSURL(fileURLWithPath: path)
player = AVAudioPlayer(contentsOfURL: fileURL, error: nil)
player.prepareToPlay()
player.delegate = self
player.play()
}
我没有费心做任何错误检查,但是好处是,如果有问题,您将崩溃。
最后一点可能无关紧要:并非每个
m4a
文件都可以播放。例如,高度压缩的文件可能会静默失败(双关语)。关于ios - AVAudioPlayer无法在Swift中播放音频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24792783/