我正试图使用这里提到的苹果文档将HLS流下载到我的iPhone上-https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/MediaPlaybackGuide/Contents/Resources/en.lproj/HTTPLiveStreaming/HTTPLiveStreaming.html
即使是2分钟的小视频也需要3-4分钟才能下载,我有一个快速的互联网连接,所以这不是问题。
我想知道的是,在下载时是否有任何特定的流需要下载或指定?我的m3u8中的流是320p、720p、1080p。是不是全部都下载了,所以花了那么多时间?
这就是我如何设置代码下载hls-
let urlConfiguration = URLSessionConfiguration.background(withIdentifier: downloadIdentifier)
// Create a new AVAssetDownloadURLSession with background configuration, delegate, and queue
let assetDownloadSession = AVAssetDownloadURLSession(configuration: urlConfiguration,
assetDownloadDelegate: self,
delegateQueue: OperationQueue.main)
let asset = AVURLAsset(url: URL(string: assetUrl)!)
// Create new AVAssetDownloadTask for the desired asset
let avAssetDownloadTask = assetDownloadSession?.makeAssetDownloadTask(asset: asset,
assetTitle: title,
assetArtworkData: nil,
options: nil)
// Start task and begin download
avAssetDownloadTask?.resume()
您可以考虑使用Charles Proxy或Wireshark等工具来确定底层网络请求的吞吐量。您的服务器速度可能较慢。