android – 如何从媒体播放器中的字节数组播放视频

我正在使用连接到我的
Android设备的USB设备

这个设备发给我一个包含视频帧的缓冲区
它不断地剂量.

当我收到缓冲区时,我应该将特定的标题放入其中并将其作为m4v视频文件写入SD卡.

然后我应该在媒体播放器中播放它
到目前为止它工作正常但我应该现场直播.一旦usb设备发送缓冲区我就应该处理它并播放它以便我可以显示视频.

我的问题是如何从字节缓冲区播放视频文件而不将其存储在SD卡中?

最佳答案 我知道这个问题已经有一段时间了,但是我遇到了通过USB连接传输视频传输流的情况.

看起来您需要创建一个扩展MediaDataSource的数据源,并提供readAt()和getSize()方法.

我的理解是Android的MediaPlayer,当您提供URL / URI作为数据源时(通过setDataSource(),处理所有网络以下载数据或从存储中检索数据,并拥有自己的MediaDataSource播放器用户.

我的计划是创建一个服务,从USB设备获取传输流,并不断更新我提供给MediaPlayer的自定义MediaDataSource.

Here是我在这个主题上唯一能找到的东西,这是一个用MediaDataSource和MediaPlayer进行测试的测试.他们将文件中的视频读入字节数组,然后将该数组用于readAt()和getSize()方法.

我能找到的其他资源只是为MediaPlayer提供字符串的人,但没有任何涉及到他们自己的网络.另外,我很好奇视频是如何与固定大小的视频不同.

编辑:我写了一篇关于MediaDataSource的博客文章以及如何开始使用它.这是link.

点赞