如何在android中的surfaceview中将另一个字节数组添加到onpreviewframe的字节数组中

时间:2014-02-12 08:13:05

标签: android camera bytearray surfaceview

其实我需要做一个简单的任务 在由表面视图创建的视频中添加徽标

首先,我将徽标图像转换为字节数组并成功完成 在下一阶段需要将徽标字节数组添加到OnPreviewFrame方法的参数Byte [] xxx

我怎样才能添加这两个字节数组

是否可以使用表面视图进行视频录制,并在视频的一角使用我的静态应用程序徽标。

关注我的代码:

@Override
        public void onPreviewFrame(byte[] data, Camera camera) {

            Camera.Parameters parameters = camera.getParameters();

            if (yuvIplimage != null && recording) {
                if (nextFrametime == -1) {
                    nextFrametime = startTime;
                }
                if (System.currentTimeMillis() >= nextFrametime) {
                    videoTimestamp = 1000 * (System.currentTimeMillis() - startTime);

                    // Put the camera preview frame right into the yuvIplimage
                    // object

                    yuvIplimage.getByteBuffer().put(data);
                    try {

                        // Get the correct time
                        recorder.setTimestamp(videoTimestamp);

                        // Record the image into FFmpegFrameRecorder
                        recorder.record(yuvIplimage);

                        recordError = false;

                    } catch (FFmpegFrameRecorder.Exception e) {
                        recordError = true;
                        nextFrametime = -1;
                        frameCount = 0;
                        Log.v(LOG_TAG, e.getMessage());
                        e.printStackTrace();
                    }
                    nextFrametime = startTime
                            + (long) ((1000.0 / 15) * (++frameCount));
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

您可能希望在预览帧的顶部添加叠加层,这是您制作的视频的水印类型。如果使用 ffmpeg on native level 处理此问题,您将获得最佳结果,但对于JavaCV,请参阅 tutorial