Luc*_*cas 2 iphone itunes-store ios avplayer swift
我正在使用AVPlayer(我不需要,但我想流式传输并尽快开始播放)播放m4a文件(这是iTunes音频预览).只有我只想让它播放该文件的一部分.我可以设置开始时间而不是结束时间.
使用计时器不起作用,因为我使用URL作为http地址.我正在加载,而不下载文件.
我还看到Objective-C中的解决方案使用KVO知道音乐什么时候开始播放但是我认为这不是最好的方法,因为我使用swift并且还因为可能出现的故障所以歌曲不会停留在正确的时刻.
您可以将addBoundaryTimeObserverForTimes添加 到AVPlayer,如下所示:
更新:Xcode 8.3.2•Swift 3.1
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player: AVPlayer!
var observer: Any!
override func viewDidLoad() {
super.viewDidLoad()
guard let url = URL(string: "https://www.example.com/audio.mp3") else { return }
player = AVPlayer(url: url)
let boundary: TimeInterval = 30
let times = [NSValue(time: CMTimeMake(Int64(boundary), 1))]
observer = player.addBoundaryTimeObserver(forTimes: times, queue: nil) {
[weak self] time in
print("30s reached")
if let observer = self?.observer {
self?.player.removeTimeObserver(observer)
}
self?.player.pause()
}
player.play()
print("started loading")
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1070 次 |
最近记录: |