如何在媒体播放器中播放字节数组中的视频

时间:2012-07-01 10:13:42

标签: android video byte

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

此设备向我发送包含视频帧的缓冲区 它不断地剂量。

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

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

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

2 个答案:

答案 0 :(得分:2)

我知道这个问题已经有一段时间了,但是我遇到的情况与我通过USB连接传输视频传输流的情况相同。

您似乎需要创建一个扩展MediaDataSource的数据源,并提供readAt()getSize()方法。

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

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

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

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

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

答案 1 :(得分:0)

我发现jacks205没有提到Closeable中的抽象方法close()。我们还需要编写close(),否则编译将报告以下错误: YourMediaDataSource不是抽象的,不会覆盖Closeable中的抽象方法close()