是否可以开始播放大型.aac文件而无需先下载整个文件?

猪扒

我正在尝试在iOS应用中开始播放大型.aac文件,或者可以极大地减少下载时间,因此可以更早开始播放。这似乎是.aac文件的特殊之处。

在Safari和Chrome之类的网络浏览器中,持续时间不正确,并且清理效果不佳(Chrome),或者仅限于从头开始逐步搜索(Safari),但是播放却很快开始。我的iOS中基于AVFoundation的播放器似乎无法立即执行此操作。尽管我希望使用清理功能,但是对于较大的.aac文件,只需能够以高稳定性开始播放而没有明显的延迟(50秒或更长时间),这将是一个可接受的解决方案。

根据我对.aac文件编码的了解,除非下载了所有单独的数据包,否则无法开始播放。貌似,本机AVPlayer可以运行,preferredForwardBufferDuration并且automaticallyWaitsToMinimizeStalling应该允许我在完整文件下载之前配置回放,但这似乎对我也不起作用。

我在这里检查了一个苹果论坛线程,该线程也无法解决:

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

有谁解决了这个问题?

猪扒

好吧,我通过将AVURLAssetPreferPreciseDurationAndTimingKey.aac文件bool设置为false / NO来解决了缓慢的加载时间

这是一个精确的修复程序,专门针对iOS应用中此文件类型的缓慢加载时间而进行的权衡取舍,即在整个下载完成之前,无法在文件中向后和向前搜索。用苹果说话:

请注意,这种精确度可能需要在使用资源任何部分的操作之前对资源进行额外的解析,具体取决于其容器格式的细节。许多容器格式提供了足够的摘要信息以实现精确的计时,并且不需要额外的解析来为其准备;QuickTime电影文件和MPEG-4文件就是这种格式的示例。其他格式没有提供足够的摘要信息,只有在初步检查文件内容之后,才可能对其进行精确的随机访问。

请参阅此处的完整文档:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从S3读取ZIP文件,而无需下载整个文件

是否可以在子进程中运行功能而无需线程化或编写单独的文件/脚本。

我可以比较两个文件:http服务器上的本地文件和远程文件,而无需下载吗?

是否可以仅替换文件中的特定行而无需重写整个文件

AVPlayer-播放具有单独音频URL的网络视频,而无需先下载文件

是否可以通过编程方式更新Jar文件而无需重写整个文件?

在S3中读取和解析CSV文件,而无需下载整个文件

TypeScript:是否可以导入文件夹而无需编写index.ts文件?

是否可以将代码从一个AWS Lambda函数复制到另一个功能而无需先下载它?

有什么方法可以从网址获取文件大小,而无需使用Google App脚本下载文件?

在项目文件夹本身中捆绑python依赖项,以便可以轻松共享它并启动应用程序,而无需下载任何依赖项

如何让AVPlayer从URL播放mp3而无需等待迅速加载整个文件

获取大型tplog文件的子集,而无需在kdb的内存中加载完整的tplog文件

您可以使用PowerShell压缩网络共享上的文件,而无需将其下载到客户端吗?

在docker中创建实施限制的卷大小限制-无需先下载整个大文件,然后才说下载失败?

将大型github文件复制到现有存储库中,而无需下载/克隆

有没有一种方法可以提供文件下载而无需从Java路径中读取文件?

是否可以将XWPFDocument转换为Byte []而无需先将其保存到文件中?

是否可以刷新单个itemRenderer而无需刷新整个dataProvider?

可以使用inotify监视要创建的特定文件,而无需监视整个目录吗?

如何检查文件是否可以存储在特定位置而无需存储/创建文件?

是否可以读入并解析链接到网站上的.docx文件,而无需下载该文件(使用Java,Python或其他语言)?

是否可以直接在Chrome中查看PDF,而无需先下载它们?

是否可以从Android设备更新缓存文件而无需删除应用程序?

是否可以使用预先填充的加密领域文件而无需明确说明密钥?

Laravel:检查文件是否存在而无需扩展名

是否可以在 git 中取消跟踪文件而无需在遥控器中删除它

有没有办法通过 node.js 直接读取存储桶 Google Cloud Datastore 中的 JSON 文件的内容,而无需事先下载?

将 mp4 文件与应用程序捆绑在一起,让用户可以直接从设备播放视频,而无需从云端下载