如何读取较大文件的较小块作为字节数组,并将其视为Java android中的视频或音频文件



我有一个大文件(我使用十六进制编辑器简单地把一些。mp4和。mp3文件放在一起,并将它们保存为一个大~500mb的原始数据文件,并记录每个文件的开始偏移/索引和它们的长度,即文件大小),现在我想把这个大文件在android外部存储,并从它读取这些视频或音频文件之一。
我知道我可以创建一个临时文件context.getCacheDir();并将这个较小的(30-50MiB)字节数组块写入它,并简单地在我的videoView中播放文件,
但我想在不创建临时文件并每次进入/退出该活动时删除它的情况下读取此文件。
我可能需要定义一个文件,并保存字节数组到它,并提供该文件到我的mediaPlayer作为数据源,而不写入缓存文件。我该怎么做呢?(请用代码片段/示例回答)

你可以很容易地做到这一点,如果你只是切换到不同的播放器。

使用ExoPlayer播放,创建自定义DataSource。在这个DataSource中,您可以开始从任何地方读取字节并将其馈送到ExoPlayer以播放。

然而,应该注意的是,一些视频文件容器在文件末尾添加一些元数据,而另一些则在文件开始添加。并且需要这个元数据来播放它们。

最新更新