在Android中使用本地套接字将实时video录制保存到SD卡 – video无法播放

尝试使用本地套接字捕获video并以Mp4 / 3gp格式保存到SD卡。 能够按字节写入字节到SD卡,但video文件不能播放。我经历了很多例子:

https://github.com/fyhertz/spydroid-ipcamera

https://github.com/mconf/sipdroid

还有很多。 我注意到有人build议这可能是文件头的问题。 我试图从头文件中跳过这些“mdat”数据:

private void skipHeader() throws IOException { // Skip all atoms preceding mdat atom byte[] buffer = new byte[3]; while (true) { while (mReceiver.getInputStream().read() != 'm'); mReceiver.getInputStream().read(buffer,0,3); if (buffer[0] == 'd' && buffer[1] == 'a' && buffer[2] == 't') break; } } 

最后没有任何工作对我来说。我需要额外的使用本地套接字来播放这些video文件

Solutions Collecting From Web of "在Android中使用本地套接字将实时video录制保存到SD卡 – video无法播放"

从你的解释,你想要实现的是一个屏幕录像机。 当然,你的意图是系统将把它作为你的软件提供的技术的一部分来实现。

在这里输入图像说明

在这种情况下,最好的方法是改进已经存在的内容,将代码与新特性或新性能结合起来,并将原来的源代码作为您的软件的一部分提供给您,如预期的那样。 这是开放源代码的美妙之处,它允许代码被重用,分发和改进。

在这里输入图像说明

在Github有很多的项目,如你所知,一些好的和其他的很棒。 对于您的具体情况,我的build议是使用现有的代码,允许您的stream式录制系统捕获video,写入它,而不需要根植设备,因为最终用户不会有兴趣使新购买的设备的保修无效运行你的软件。

在这里输入图像说明

实现一个很好的速度也是很重要的,至less可以让Android在不同的屏幕尺寸下每秒捕获20个屏幕,清晰的分辨率和较低的CPU使用率。 所有这些特点将保持您的解决scheme稳定,仍然坚如磐石。

在这里输入图像说明

我认为最好的方法,可以节省时间和头痛,将“sji-android-screen-capture”代码作为项目的一部分。 如果你的目标设备是Android 4.2〜4.4,那么你应该支持这些Android版本。 更多的信息和源代码本身,你可以在Github仓库find。 或者,您也可以使用Android ScreenCapture Sample实时捕捉设备屏幕。