-1

我使用此代码在我的设备上打开相机视频模式:

package com.example.camera_test;

import java.io.ByteArrayOutputStream;

import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore.Video;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.hardware.Camera;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity {

    private static final int CAMERA_PIC_REQUEST = 1337; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button) findViewById(R.id.button1);

        button.setOnClickListener(new OnClickListener()
        {
        @SuppressLint("NewApi") @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
            Intent videoIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
            startActivityForResult( videoIntent,0);

当点击一个按钮时它工作得很好,它会在视频上打开相机。现在我想获得一个视频流,而不是将视频记录/保存到设备磁盘,而是每次实时获取视频中的一帧,将此帧保存到闪存卡对帧执行操作后删除它一些东西然后下一帧等等......

所以最后,当我将我的设备左右上下左右移动时,它会一直将一帧从视频保存到闪存做一些事情并删除它等等。

框架我的意思是一个图像至极是一个框架。要将当前帧提取到闪存中,请执行某些操作并删除此帧和下一帧。

我怎样才能开始思考和做呢?

4

1 回答 1

0

您显示视频源的预览,然后调用 Camera.takePicture 以获取回调,其中包含调用时帧数据的字节数组。在 Android 开发者网站上有一个很好的例子:http:
//developer.android.com/guide/topics/media/camera.html#capture-picture

请注意,在开发人员站点上,它有一个触发 takePicture 调用的按钮,但您可以从代码中轻松调用。根据提供的参数,您可以接收帧的压缩 JPEG 版本或原始数据版本。如果要以 JPEG 格式保存到 SD 卡,让系统进行压缩会更有效。如果您需要多于一帧,请按照开发人员指南设置相同的程序,然后使用 Camera#setPreviewCallback 方法为视频源的每一帧获取回调。

于 2013-01-20T20:03:29.980 回答