1
私はJukeboxライブラリを使用してリモート音楽をストリーミングしています。私が流すミュージカルは60分です。私がそれらを探し出そうとすると、30〜40秒かかるでしょう。ライブラリーの一部のコードを変更して、最初にすぐに再生できるようにしました。それは働いたが、それは追求をスピードアップしない。長い音楽をストリーミングするときのAVPlayerのシーク時間が短くなります
public func seek(toSecond second: Int, shouldPlay: Bool = false) {
guard let player = player, let item = currentItem else {return}
player.seek(to: CMTimeMake(Int64(second), 1))
item.update()
if shouldPlay {
if #available(iOS 10.0, *) {
player.playImmediately(atRate: 1.0)
} else {
player.play()
}
if state != .playing {
state = .playing
}
}
delegate?.jukeboxPlaybackProgressDidChange(self)
}
30〜40秒はかなり長いです。それは私に何かがリソースや接続性に関連するように感じさせます。異なる再生可能な資産とネットワークを試してみませんか? URLを取得してサファリから再生して、違いを比較することもできます。 – Breek
はい。サファリでは5秒、イン・vlcで1-2秒かかります。 avplayerはシークする前にすべての曲をダウンロードする必要がありますか? – eonr
私は100%ではありませんが、リソースがライブストリーミングをサポートしている場合、 'AVPlayer'はリソースの一部をバッファし、利用可能なものから再生します。サファリが5秒しかかからない場合は、独自の 'AVPlayer'インスタンスを作成するようにしてください。 – Breek