Exoplayer 可以在不下载完整文件的情况下播放 mp3 吗?
Can Exoplayer Stream mp3s Without Downloading The Full File?
问题
如果将 mp3 文件保存到云端,即:Firebase Storage, can the file be streamed with Exoplayer on Android 而无需下载完整文件大小?如果 mp3 可以直接从 Cloud Storage 流式传输,由于文件本身没有被下载,在流式传输中大约使用了多少百分比的文件内存?
objective是为了避免比数据存储成本更昂贵的数据传输成本。
可能的解决方案
根据此媒体 Post、Downloading Streams,DataSource 似乎可以在不下载文件的情况下处理托管的 mp3 文件。但是,我不确定,所以如果这里有人可以确认那就太棒了。
感谢 ExoPlayer 团队的 Oliver Woodman 解决 this question on Github!
如果 mp3 文件保存到云端,ie:Firebase 存储/Google 云存储,是否可以从 Exoplayer 流式传输文件而无需下载完整文件大小?
Yes. That's just what happens by default when you use ExoPlayer to play a stream.
如果 mp3 可以直接从 Cloud Storage 流式传输,由于文件本身没有被下载,在流式传输中大概使用了多少百分比的文件内存?
You can configure this by instantiating your own DefaultLoadControl, which you can pass to ExoPlayerFactory.newSimpleInstance when building the player. You can also implement your own LoadControl from scratch if you need more control.
Note that whilst buffering less far ahead saves on data transfer costs, it also makes re-buffers more likely to occur because the player will be less able to ride out temporary network connectivity issues.
问题
如果将 mp3 文件保存到云端,即:Firebase Storage, can the file be streamed with Exoplayer on Android 而无需下载完整文件大小?如果 mp3 可以直接从 Cloud Storage 流式传输,由于文件本身没有被下载,在流式传输中大约使用了多少百分比的文件内存?
objective是为了避免比数据存储成本更昂贵的数据传输成本。
可能的解决方案
根据此媒体 Post、Downloading Streams,DataSource 似乎可以在不下载文件的情况下处理托管的 mp3 文件。但是,我不确定,所以如果这里有人可以确认那就太棒了。
感谢 ExoPlayer 团队的 Oliver Woodman 解决 this question on Github!
如果 mp3 文件保存到云端,ie:Firebase 存储/Google 云存储,是否可以从 Exoplayer 流式传输文件而无需下载完整文件大小?
Yes. That's just what happens by default when you use ExoPlayer to play a stream.
如果 mp3 可以直接从 Cloud Storage 流式传输,由于文件本身没有被下载,在流式传输中大概使用了多少百分比的文件内存?
You can configure this by instantiating your own DefaultLoadControl, which you can pass to ExoPlayerFactory.newSimpleInstance when building the player. You can also implement your own LoadControl from scratch if you need more control.
Note that whilst buffering less far ahead saves on data transfer costs, it also makes re-buffers more likely to occur because the player will be less able to ride out temporary network connectivity issues.