首页

android 视频录制并保存至本地

java

2020-7-24

package com.media.Media;

import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class VideoActivity extends Activity {

    
    private File myRecAudioFile;
    private SurfaceView mSurfaceView;   
    private SurfaceHolder mSurfaceHolder; 
    private Button buttonStart;
    private Button buttonStop;
    private File dir;
    private MediaRecorder recorder;
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video);
        mSurfaceView = (SurfaceView) findViewById(R.id.videoView);   
        mSurfaceHolder = mSurfaceView.getHolder();   
        mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
        buttonStart=(Button)findViewById(R.id.start);
        buttonStop=(Button)findViewById(R.id.stop);
        File defaultDir = Environment.getExternalStorageDirectory();
        String path = defaultDir.getAbsolutePath() File.separator "V" File.separator;//创建文件夹存放视频
        dir = new File(path);
        if(!dir.exists()){
        	dir.mkdir();
        }
        recorder = new MediaRecorder();
        
        buttonStart.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            	recorder();
            }
        });
        
        buttonStop.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
	             recorder.stop();
	             recorder.reset();
	             recorder.release();
	             recorder=null;
            }
        });
    }
    
    
    
    public void recorder() {
        try {
            myRecAudioFile = File.createTempFile("video", ".3gp",dir);//创建临时文件
            recorder.setPreviewDisplay(mSurfaceHolder.getSurface());//预览
            recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//视频源
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //录音源为麦克风
            recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//输出格式为3gp
            recorder.setVideoSize(800, 480);//视频尺寸
            recorder.setVideoFrameRate(15);//视频帧频率
            recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//视频编码
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音频编码
            recorder.setMaxDuration(10000);//最大期限
            recorder.setOutputFile(myRecAudioFile.getAbsolutePath());//保存路径
            recorder.prepare();
            recorder.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

资源下载此资源下载价格为2D币(VIP免费),请先
资源文件列表
media/.project , 841
media/AndroidManifest.xml , 893
media/bin/classes.dex , 5220
media/bin/com/media/Media/R$attr.class , 331
media/bin/com/media/Media/R$drawable.class , 421
media/bin/com/media/Media/R$id.class , 495
media/bin/com/media/Media/R$layout.class , 414
media/bin/com/media/Media/R$string.class , 418
media/bin/com/media/Media/R.class , 510
media/bin/com/media/Media/VideoActivity$1.class , 792
media/bin/com/media/Media/VideoActivity$2.class , 1075
media/bin/com/media/Media/VideoActivity.class , 3386
media/bin/media.apk , 14758
media/bin/resources.ap_ , 10383
media/default.properties , 362
media/gen/com/media/Media/R.java , 1043
media/proguard.cfg , 1034
media/res/drawable/icon.png , 2574
media/res/drawable/rabbit.png , 8168
media/res/layout/main.xml , 1032
media/res/layout/video.xml , 867
media/res/values/strings.xml , 170
media/src/com/media/Media/VideoActivity.java , 3018
没有账号? 忘记密码?

社交账号快速登录