Swift 2 - m4a 文件无法在 iOS 上播放
Swift 2 - m4a file won't play on iOS
我正在尝试以编程方式在 iOS 设备上播放 m4a 文件。该文件是从服务器下载并存储的。当用户按下按钮时,它就会播放。该文件从设备复制到 OSX 时确实可以正常播放。我正在使用代码
var player:AVAudioPlayer = AVAudioPlayer()
func playAudio(sender: UIButton!) {
let audioPath = FileUtils.getPath(audioPaths[sender.tag])
print("PATH " + audioPath)//The printed path IS DEFINETLY correct
do{
player = try! AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: audioPath))
player.prepareToPlay()
player.play()
}
}
路径是正确的,所以我不确定为什么它不起作用。可能是格式(即使它在 OSX 上播放)?
示例文件:https://www.dropbox.com/s/csewwg6n9vzan5z/131015-08%3A13%3A30.m4a?dl=0
这可能只是此 m4a
文件压缩方式的一个特点。一个简单的事实是,并非每个 m4a
文件,即使它是完全有效的文件,都可以在您的设备上播放。 (例如,这个文件可能 非常 压缩。)让事情变得更复杂的是,它因设备而异!为了让事情变得更 更 复杂,该文件可能会在音乐应用程序中播放,但不会在 AVAudioPlayer 中播放!!
为了验证这个理论,将文件重新编码为更中间的 m4a
并查看 是否播放。
该文件无法在 iOS 上播放,因为它使用 AMR 窄带编码,。
我会尝试将 m4a 文件重新编码为 AAC,或切换到 mp3。
我正在尝试以编程方式在 iOS 设备上播放 m4a 文件。该文件是从服务器下载并存储的。当用户按下按钮时,它就会播放。该文件从设备复制到 OSX 时确实可以正常播放。我正在使用代码
var player:AVAudioPlayer = AVAudioPlayer()
func playAudio(sender: UIButton!) {
let audioPath = FileUtils.getPath(audioPaths[sender.tag])
print("PATH " + audioPath)//The printed path IS DEFINETLY correct
do{
player = try! AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: audioPath))
player.prepareToPlay()
player.play()
}
}
路径是正确的,所以我不确定为什么它不起作用。可能是格式(即使它在 OSX 上播放)?
示例文件:https://www.dropbox.com/s/csewwg6n9vzan5z/131015-08%3A13%3A30.m4a?dl=0
这可能只是此 m4a
文件压缩方式的一个特点。一个简单的事实是,并非每个 m4a
文件,即使它是完全有效的文件,都可以在您的设备上播放。 (例如,这个文件可能 非常 压缩。)让事情变得更复杂的是,它因设备而异!为了让事情变得更 更 复杂,该文件可能会在音乐应用程序中播放,但不会在 AVAudioPlayer 中播放!!
为了验证这个理论,将文件重新编码为更中间的 m4a
并查看 是否播放。
该文件无法在 iOS 上播放,因为它使用 AMR 窄带编码,
我会尝试将 m4a 文件重新编码为 AAC,或切换到 mp3。