Android编码/解码问题

时间:2010-12-17 13:35:06

标签: android

我再次需要你的帮助。我从onPreviewFrame获取byte [](byte []数据,Camera arg1)。现在我将每帧通过TCP传输到我的系统,然后用该字节[]写一个JPG文件。但是当我打开这个JPG文件时,它说无效的JPG文件。另外,当我从PictureCallback jpegCallback = new PictureCallback()方法发送相同的byte []然后在我的PC上写一个JPG文件时,它工作正常。

我知道它是一种编码问题,实际上我从onPreviewFrame得到的byte []是压缩图像数据的字节数组。

我只能将这个压缩图像数据的字节数组通过TCP从我的手机传输到PC。但是我想在PC上得到这个数据后才能解码这些数据。你们可以帮我解决一下这个问题。

我会非常感谢任何帮助。

祝你好运, ZAI

2 个答案:

答案 0 :(得分:1)

您需要将来自onPreviewFrame(byte[] data, Camera arg1)的byte []数据编码为JPEG格式。然后通过网络发送。

在接收端,您可以分别检查图像的开始和结束标记为0xff,0xd8和0xff,0xd9。您需要解码收到的字节。

答案 1 :(得分:0)

onPreviewFrame(byte []数据,Camera arg1)中接收的字节数组可能不是jpeg格式。请检查您的相机预览格式设置,并尝试将jpeg设置为预览格式(getSupportedPreviewFormats()+ setPreviewFormat(int pixel_format))。但是,我不认为在相机预览模式下支持jpeg格式,因为压缩开销对于实时视频流来说可能太耗费时间。

伊日