远程URL的音频开始播放大约需要10秒钟

时间:2019-05-05 16:17:28

标签: ios swift avplayer

我可以从一个URL播放声音。但是要花费近10秒钟才能播放音频。

:global(.a-global-class) { ... }

我是iOS的新手。我不确定,如何下载URL音频然后播放该音频?我不想延迟10秒播放音频。

更新,我尝试过:

@IBAction func playBtnTap(_ sender: Any) {
    let url = URL(string: muscUrl!)!
    let playerItem = AVPlayerItem(url: url)
    self.player = AVPlayer(playerItem: playerItem)
    self.player!.play()
}

在控制台中出现错误:

  

该操作无法完成。 (OSStatus错误1954115647。)

override func viewDidLoad() { super.viewDidLoad() let urlstring = "http://radio.spainmedia.es/wp-content/uploads/2015/12/tailtoddle_lo4.mp3" let url = NSURL(string: urlstring) print("the url = \(url!)") downloadFileFromURL(url: url!) } func downloadFileFromURL(url:NSURL){ var downloadTask:URLSessionDownloadTask var request = URLRequest(url:url as URL) downloadTask = URLSession.shared.downloadTask(with: request, completionHandler: { (URL, response, error) -> Void in self.play(url: URL as! NSURL) }) downloadTask.resume() } func play(url:NSURL) { print("Playing \(url)") do { self.player = try AVAudioPlayer(contentsOf: url as URL) player!.prepareToPlay() player!.volume = 1.0 player!.play() } catch let error as NSError { //self.player = nil print(error.localizedDescription) } catch { print("AVAudioPlayer init failed") } }

1 个答案:

答案 0 :(得分:0)

您的第一个密码是正确的。在设备上运行时,没有任何明显的延迟。自然,在慢速的Internet连接上可能需要一些时间才能填充缓冲区,然后才能开始播放。但是您的第二个代码(下载然后播放)会变得更慢。

如果您想了解AVPlayer缓冲区的状况,请使用KVO跟踪其timeControlStatus中的更改。