我只想问一下如何使用通过URL链接使用avAudion播放音频。
我收到错误的错误请求。有人可以帮助我吗?
我已经尝试过使用avplayer,但是它不适合我..虽然可以使用,但是..我还是更喜欢使用avaudioplayer
let mp3URL = NSURL(fileURLWithPath:"https://s3.amazonaws.com/kargopolov/kukushka.mp3")
do {
// 2
audioPlayer = try AVAudioPlayer(contentsOf: mp3URL as URL)
audioPlayer.play()
// 3
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateAudioProgressView), userInfo: nil, repeats: true)
progressView.setProgress(Float(audioPlayer.currentTime/audioPlayer.duration), animated: false)
}
catch {
print("An error occurred while trying to extract audio file")
}
答案 0 :(得分:0)
根据the AVAudioPlayer documentation,如果您想通过Internet播放音频(尚未下载到磁盘或内存),则应使用AVPlayer。
文档将AVAudioPlayer描述为
一种音频播放器,可播放文件或内存中的音频数据。
再往下一点,在“概述”部分中,增加了重点:
使用此类进行音频播放除非您正在播放从网络流中捕获的音频,或者需要非常低的I / O延迟。
catch {
更改为catch let error {
,然后您可以将错误作为消息的一部分注销,如下所示:catch let error{
print("An error occurred while trying to extract audio file: \(error)")
}
尝试提取音频文件时发生错误:Error Domain = NSOSStatusErrorDomain Code = 2003334207“(null)”
Domain
和Code
。 Pasting that error into Google产生一些结果,表明URL可能无法正确解析。 (实际上,单击该mp3链接会显示错误的访问错误消息。)第一个结果是another StackOverflow post,存在类似问题。第二个是Apple Developer Forum post,其中包含更多信息。
让我们尝试将URL更改为可公开访问的示例mp3文件。 (我通过在网络上搜索Google上的“测试mp3文件”来找到this one。)
您需要将NSURL
更改为URL
,并且要使用另一个初始化器,而不是fileURLWithPath
。 (说string:
。)
每当在媒体或文件API中看到contentsOf...:
时,就有很大的机会期望数据或文件被排除在网络流之外。同样,当您看到采用fileURL...
的初始化程序或方法时,系统期望指向的是本地资源,而不是网络URL。
答案 1 :(得分:-1)
if let mp3URL = URL(string: "https://s3.amazonaws.com/kargopolov/kukushka.mp3"){
// do s.t
}
无论如何,您应该了解ios的基础