【问题标题】:Can Exoplayer Stream mp3s Without Downloading The Full File?Exoplayer 可以在不下载完整文件的情况下流式传输 mp3 吗?
【发布时间】:2019-04-03 23:43:50
【问题描述】:

问题

如果将mp3文件保存到云端,即:Firebase Storage,可以在Android上用Exoplayer流式传输文件而不需要下载完整的文件大小吗?如果 mp3 可以直接从 Cloud Storage 流式传输,那么由于文件本身没有被下载,因此在传输流时使用了多少百分比的文件内存?

目标是避免比数据存储成本更昂贵的数据传输成本。

可能的解决方案

根据这篇 Medium Post Downloading Streams,看起来 DataSource 可以在不下载文件的情况下处理托管的 mp3 文件。但是,我不确定,如果这里有人可以确认那将是惊人的。

【问题讨论】:

    标签: java android kotlin firebase-storage exoplayer


    【解决方案1】:

    感谢 ExoPlayer 团队的 Oliver Woodman 解决了this question on Github

    如果将 mp3 文件保存到云端,即:Firebase Storage / Google Cloud Storage,是否可以从 Exoplayer 流式传输文件而无需下载完整文件大小?

    是的。这正是您使用 ExoPlayer 播放流时默认发生的情况。

    如果 mp3 可以直接从 Cloud Storage 流式传输,那么由于文件本身没有被下载,因此在传输流时使用了多少百分比的文件内存?

    您可以通过实例化您自己的 DefaultLoadControl 来配置它,您可以在构建播放器时将其传递给 ExoPlayerFactory.newSimpleInstance。如果您需要更多控制,也可以从头开始实现自己的 LoadControl。

    请注意,虽然提前缓冲越少可以节省数据传输成本,但它也使得重新缓冲更有可能发生,因为玩家将不太能够解决临时的网络连接问题。

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 2012-04-23
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 2020-02-15
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多