package com.example.makevideo;
import android.hardware.Camera;
import android.media.MediaRecorder;
import android.os.Build;
import android.os.Environment;
import android.view.SurfaceView;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import java.io.File;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private Button play,stop,record;
private SurfaceView surfaceView;
private File videoFile;
private MediaRecorder mediaRecorder;
private Camera camera;
private boolean isRecord=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//设置摄像头参数
surfaceView=findViewById(R.id.surfaceView);
surfaceView.getHolder().setFixedSize(1920,1080);//设置分辨率
record=findViewById(R.id.record);
record.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
record();
}
});
stop=findViewById(R.id.stop);
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//停止录制并提示保存路径
if(isRecord)
{
mediaRecorder.stop();
mediaRecorder.release();
Toast.makeText(MainActivity.this, "视频保存在:"+videoFile, Toast.LENGTH_LONG).show();
}
}
});
}
private void record()//录制视频
{
File path=new File(Environment.getExternalStorageDirectory()+"/MyVideo/");//视频保存的文件夹
if(!path.exists())
path.mkdir();
String fileName="video_test.mp4";
videoFile=new File(path,fileName);//视频文件
mediaRecorder=new MediaRecorder();
camera.setDisplayOrientation(90);//调整摄像头的角度
camera.unlock();//解锁摄像头
mediaRecorder.setCamera(camera);//使用摄像头
mediaRecorder.reset();//重置摄像头
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置麦克风
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//使用摄像头获取图像
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);//设置视频输出格式
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);//设置声音编码格式
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);//设置视频的编码格式
mediaRecorder.setVideoEncodingBitRate(1920*1080);//设置清晰度
mediaRecorder.setVideoSize(1920,1080);//视频尺寸
mediaRecorder.setVideoFrameRate(10);//每秒有10帧
mediaRecorder.setOutputFile(videoFile.getAbsolutePath());//视频输出路径
mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());//设置使用的surfaceView
mediaRecorder.setOrientationHint(90);//调整视频播放的角度
try {
mediaRecorder.prepare();//准备录像
} catch (IOException e) {
e.printStackTrace();
}
mediaRecorder.start();
Toast.makeText(this, "开始录制", Toast.LENGTH_SHORT).show();
isRecord=true;
}
protected void onResume()
{
super.onResume();
//当activity获得焦点时,开启摄像头
camera=Camera.open();
}
protected void onPause()
{
super.onPause();
//失去焦点,关闭预览
camera.stopPreview();
camera.release();
}
}
使用摄像头录制视频
最新推荐文章于 2024-02-25 14:19:06 发布