录制视频并在视频上显示视频上的时间和日期 [英] Record video and over the video show time and date over the video

查看:2272
本文介绍了录制视频并在视频上显示视频上的时间和日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,有人知道如何在android中录制视频,例如,在底部的录制屏幕上方,显示当前时间和日期

Hi does anybody knows how to record video in android and for example above the recording screen at the bottom show current time and date

推荐答案

这里是在表面视图中录制视频并在sdcard中存储日期和时间 通过此

Here is code that record video in surface view and store in sdcard and for date and time by This

package com.po;

import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.media.CamcorderProfile;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class VideoRD extends Activity implements OnClickListener,
        SurfaceHolder.Callback {
    MediaRecorder recorder;
    SurfaceHolder holder;

    boolean recording = false;
    public static final String TAG = "VIDEOCAPTURE";
    String str_getValue ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        Intent i1 = getIntent();
        str_getValue = i1.getStringExtra("videoImagename");
        recorder = new MediaRecorder();
        initRecorder();
        setContentView(R.layout.surface);


        SurfaceView cameraView = (SurfaceView) findViewById(R.id.CameraView);
        holder = cameraView.getHolder();
        holder.addCallback(this);
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

        cameraView.setClickable(true);
        cameraView.setOnClickListener(this);

        final Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                if (recording) {
                    try {
                        recorder.stop();
                        recorder.release();
                        recording = false;
                        Log.v(TAG, "Recording Stopped");
                        initRecorder();
                        prepareRecorder();

                    } catch (Exception e) {
                        // TODO: handle exception
                    }
                } else {
                    try {
                        recording = true;
                        recorder.start();
                        button.setText("stop");

                    } catch (Exception e) {
                        // TODO: handle exception
                    }
                }
            }
        });
    }

    private void initRecorder() {
        try {
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
            // recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

            CamcorderProfile cpHigh = CamcorderProfile
                    .get(CamcorderProfile.QUALITY_HIGH);

            recorder.setProfile(cpHigh);
            recorder.setOutputFile("/sdcard/audiometer/video/"+str_getValue+"");
            recorder.setMaxDuration(1200000000); // 50 seconds
            recorder.setMaxFileSize(22000000); // Approximately 5 megabytes
        } catch (Exception e) {
            // TODO: handle exception
        }
    }

    private void prepareRecorder() {
        try {
            recorder.setPreviewDisplay(holder.getSurface());

            try {
                recorder.prepare();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (IllegalStateException e) {
            e.printStackTrace();

        } catch (Exception e) {
            // TODO: handle exception
        }
    }

    public void onClick(View v) {
        /*
         * if (recording) { recorder.stop(); recorder.release(); recording =
         * false; Log.v(TAG, "Recording Stopped"); initRecorder();
         * prepareRecorder(); } else { recording = true; recorder.start(); }
         */
    }

    public void surfaceCreated(SurfaceHolder holder) {
        prepareRecorder();
    }

    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
    }

    public void surfaceDestroyed(SurfaceHolder holder) {

        finish(); 
    }
}

这篇关于录制视频并在视频上显示视频上的时间和日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆