我正在构建一个后端服务,该服务为Android客户端创建可通过ExoPlayer流式传输的mp3。
从长远来看Firebase's Storage Pricing,如果存储了 10 gbs 和 10,000个用户,则将有 100,000 gb 转帐非常昂贵( 11,600美元)。
为了避免数据传输费用,在云上流mp3的最佳解决方案是什么?
答案 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。
请注意,虽然缓冲时间较短,可以节省数据传输成本,但由于播放器无法解决临时的网络连接问题,因此也使重新缓冲的可能性更高。