Xml布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.g150825_android27.Main3Activity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始" android:onClick="start" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="结束" android:onClick="stop" /> <SurfaceView android:layout_width="match_parent" android:layout_height="350dp" android:id="@+id/sv_main_ssss" /> </LinearLayout>
package com.example.g150825_android27; import android.media.MediaRecorder; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.SurfaceView; import android.view.View; import java.io.IOException; public class Main3Activity extends AppCompatActivity { private SurfaceView sv_main_ssss; private MediaRecorder mediaRecorder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); sv_main_ssss= (SurfaceView) findViewById(R.id.sv_main_ssss); //实例化媒体录制 mediaRecorder=new MediaRecorder(); } public void start(View view){ mediaRecorder.reset(); //设置视频和银屏来源 mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置保存的格式 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); //设置编码格式 mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); //设置音频的编码格式 mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); mediaRecorder.setVideoFrameRate(3); //保存的路劲 mediaRecorder.setOutputFile("mnt/sdcard/koo"+System.currentTimeMillis()+".mp4"); //将画面展示 mediaRecorder.setPreviewDisplay(sv_main_ssss.getHolder().getSurface()); //准备 try { mediaRecorder.prepare(); mediaRecorder.start(); } catch (IOException e) { e.printStackTrace(); } } public void stop(View view){ mediaRecorder.stop(); } }
注意:添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>