无法使用AVAudioPlayer播放保存在文档目录中的本地mp3文件
问题描述:
我在Samsung android设备上生成了mp3音频文件。我从服务器下载这个相同的文件并存储在文档目录中。现在我使用下面的代码来播放这个音频文件。 iAudioFileURL是一个我用来外部设置音频文件url的属性。当URL设置我设置了AVAudioPlayer该URL使用以下无法使用AVAudioPlayer播放保存在文档目录中的本地mp3文件
var iAudioFileURL : URL?{
didSet{
if let audioFileURL = iAudioFileURL {
if audioFileURL.isFileURL {
if let previousURL = iAVAudioPlayer?.url {
if previousURL.path == audioFileURL.path {
return
}
}
self.stopPlayer()
self.iToolBar.items?[0] = iPlayButton
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: [AVAudioSessionCategoryOptions.mixWithOthers, AVAudioSessionCategoryOptions.duckOthers])
try AVAudioSession.sharedInstance().setActive(true)
try iAVAudioPlayer = AVAudioPlayer(contentsOf: audioFileURL)
} catch let error as NSError {
iError = error
return
}
iError = nil
iAVAudioPlayer?.prepareToPlay()
self.iProgressSlider.minimumValue = 0
if let duration = self.iAVAudioPlayer?.duration {
let durationNumber = NSNumber(floatLiteral: duration)
self.iProgressSlider.maximumValue = durationNumber.floatValue
}
} else {
print("Path:\(iAudioFileURL?.path) is not a file url")
}
}
}
}
的代码工作正常,其他文件的代码,而是从该设备产生的所有MP3文件无法播放。 我有一个按钮,它会触发播放方法AVAudioPlayer实例。 我已经提到了大多数从stackoverflow的问题和答案。他们不为我提供解决方案。即使这些方法不会抛出错误。请帮助我。你可以找到文件here
答
问题是,即使扩展名是mp3,文件的MIME类型是audio/x-hx-aac-adts。在此线程[https://discussions.apple.com/thread/2365009?tstart=0][1] varjak爪子回复
的iTunes,到我所知,不支持AAC ADTS中 (音频数据传输流),只能在MPEG-4 AAC。您需要找到 转换器,以便iTunes能够在 之前将这些文件转换为MPEG-4格式。对不起,我不能提供任何关于转换器 尝试的建议。
问候。
因此,这表明不支持mimetype audio/x-hx-aac-adts的文件。 您可以在Mac上打开终端并使用下面的命令来获取文件
文件--mime型-b myfile.extension
你是如何生成的MP3文件的MIME类型? –
@SaurabhJain我正在录制文件 –
如何以mp3格式保存文件?可能它没有保存在MP3格式 –