簡體   English   中英

是否可以開始播放大型.aac文件而無需先下載整個文件?

[英]Is it possible to begin playback of large .aac files without downloading the entire file first?

我正在嘗試在iOS應用中開始播放大型.aac文件,或者可以極大地減少下載時間,因此可以更早開始播放。 這似乎是.aac文件的特殊之處。

在Safari和Chrome之類的網絡瀏覽器中,持續時間不正確,並且清理效果不佳(Chrome),或者僅限於從頭開始逐步搜索(Safari),但是播放卻很快開始。 我的iOS中基於AVFoundation的播放器似乎無法立即執行此操作。 雖然我希望使用清理功能,但是對於較大的.aac文件,只需能夠以高穩定性開始播放而沒有明顯的延遲(50秒或更長時間),這將是一個可接受的解決方案。

根據我對.aac文件編碼的了解,除非下載了所有單獨的數據包,否則無法開始播放。 看來,本機AVPlayer函數preferredForwardBufferDurationautomaticallyWaitsToMinimizeStalling應該允許我在完整文件下載之前配置回放,但是這對我似乎也不起作用。

我在這里檢查了一個蘋果論壇線程,該線程也無法解決:

https://forums.developer.apple.com/thread/63435

有誰解決了這個問題?

我使用了以下第三方框架,並且運行良好。 我希望它對您有用:)

https://github.com/tumtumtum/StreamingKit

好吧,我通過將.aac文件的AVURLAssetPreferPreciseDurationAndTimingKey bool設置為false / NO來解決了加載時間AVURLAssetPreferPreciseDurationAndTimingKey

這是一個精確的修復程序,專門針對iOS應用中此文件類型的緩慢加載時間而進行的折衷,即在整個下載完成之前,無法在文件中向后和向前搜索。 用蘋果說話:

請注意,這種精確度可能需要在使用資源任何部分的操作之前對資源進行額外的解析,具體取決於其容器格式的細節。 許多容器格式可提供足夠的摘要信息以實現精確的計時,並且不需要額外的解析來為其准備; QuickTime電影文件和MPEG-4文件就是這種格式的示例。 其他格式沒有提供足夠的摘要信息,只有在初步檢查了文件內容之后,才能對它們進行精確的隨機訪問。

請參閱此處的完整文檔:

https://developer.apple.com/documentation/avfoundation/avurlassetpreferprecisedurationandtimingkey?language=objc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM