Я пытаюсь это сделать, я получаю поток данных с камеры с байтовым форматом NV21, я могу преобразовать его в растровое изображение, и я показал в формате PNG, но я хочу показать его в прямом эфире со звуком, как я могу это сделать?
private CameraProxy.CameraDataCallBack callBack = new CameraProxy.CameraDataCallBack() {
@Override
public void onDataBack(byte[] data, long length) {
// TODO Auto-generated method stub
Log.i(TAG, "length . " + length);
//NV21 -> yuvImage -> jpeg -> bitmap
YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, realPreviewSize.getWidth(), realPreviewSize.getHeight(), null);
ByteArrayOutputStream os = new ByteArrayOutputStream();
yuvImage.compressToJpeg(new Rect(0, 0, realPreviewSize.getWidth(), realPreviewSize.getHeight()), 100, os);
byte[] jpegByteArray = os.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(jpegByteArray, 0, jpegByteArray.length);
try {
fos = new FileOutputStream(photo);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
try {
fos.close();
Bitmap img = BitmapFactory.decodeFile(photo.getAbsolutePath());
runOnUiThread(new Runnable() {
@Override
public void run() {
im.setImageBitmap(img);
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
};