【发布时间】:2017-09-06 10:07:41
【问题描述】:
我有一个在三星安卓设备上生成的 mp3 音频文件。我从服务器下载相同的文件并存储在文档目录中。现在我使用下面的代码来播放这个音频文件。 iAudioFileURL 是我在外部用于设置音频文件 url 的属性。设置 url 后,我使用下面的代码为该 url 设置 AVAudioPlayer
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 文件的?
-
@SaurabhJain 我正在录制文件
-
如何将文件保存为mp3格式?可能不是保存为mp3格式
-
@SaurabhJain 已经录制了它的 mp3。然后它上传到服务器,正如我已经确认的那样,它没有转换为任何其他格式。然后我使用 URLSession 任务下载它。那我试试玩。
-
试试看不是mp3格式录制的,我确定。
标签: ios swift3 avaudioplayer