【发布时间】:2015-09-23 03:56:14
【问题描述】:
我有一个音乐播放器应用程序,允许用户从服务器流式传输歌曲。我已经能够使用 AVPlayer 从 url 流式传输歌曲。我想实现以下目标:
我已尝试将此How to get file size and current file size from NSURL for AVPlayer iOS4.0 帖子中的最佳答案转换为 swift,但我找不到“kLoadedTimeRanges”。
这是我的代码:
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
if object as? NSObject == songPlayer && keyPath == "status" {
if songPlayer?.status == AVPlayerStatus.Failed {
println("AVPlayerStatusReadyToFailed")
}else if songPlayer?.status == AVPlayerStatus.ReadyToPlay {
println("AVPlayerStatusReadyToPlay")
self.songPlayer!.play()
}else if songPlayer?.status == AVPlayerStatus.Unknown {
println("AVPlayerStatusReadyToUnknown")
}
}
}
@IBAction func playAction(sender: UIButton) {
var songUrl = "http://a575.phobos.apple.com/us/r1000/119/Music/v4/67/9d/b0/679db0ba-a7f4-35ea-3bf1-e817e7bcf11f/mzaf_3227008615944938675.aac.m4a"
var songPlayerItem = self.songPlayer?.currentItem
self.songPlayer = AVPlayer(URL: NSURL(string: songUrl))
NSNotificationCenter.defaultCenter().addObserver(self, selector: "playerItemDidReachEnd:", name: AVPlayerItemDidPlayToEndTimeNotification, object: self.songPlayer?.currentItem)
self.songPlayer?.addObserver(self, forKeyPath: "status", options: nil, context: nil)
//NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "updateProgress:", userInfo: nil, repeats: true)
}
我会很感激任何建议,不管是使用 Objective c 还是 swift
【问题讨论】:
标签: ios iphone progress-bar audio-streaming avplayer