从Firebase存储流mp3

时间:2018-10-30 19:45:28

标签: android mp3 firebase-storage soundcloud audio-streaming

问题

我正在构建一个后端服务,该服务为Android客户端创建可通过ExoPlayer流式传输的mp3。

从长远来看Firebase's Storage Pricing,如果存储了 10 gbs 10,000个用户,则将有 100,000 gb 转帐非常昂贵( 11,600美元)。

为了避免数据传输费用,在云上流mp3的最佳解决方案是什么?

可能的解决方案

  1. 使用ExoPlayer无需下载即可直接从云中流式传输mp3。
  2. 使用单独的API一次从Cloud Storage下载 10gb ,然后从单独的API将mp3流传输到移动客户端。

1 个答案:

答案 0 :(得分:1)

可能的解决方案#1 是最好的解决方案:使用ExoPlayer直接从云中流mp3,而无需下载。

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

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

  

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

如果mp3可以直接从Cloud Storage流传输,那么由于不下载文件本身,大概在流传输中使用了多少文件内存?

  

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

     

请注意,虽然缓冲时间较短,可以节省数据传输成本,但由于播放器无法解决临时的网络连接问题,因此也使重新缓冲的可能性更高。