Android 录制视频

书到用时方恨少,事非经过不知难。这篇文章主要讲述Android 录制视频相关的知识,希望能为你提供帮助。
【Android 录制视频】Activity代码:

Android 录制视频

文章图片

package  eoe.demo.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; @Overridepublic  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); //输出格式为3gprecorder.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(); } } }

Android 录制视频

文章图片

布局代码:
Android 录制视频

文章图片

        < ?xml  version="1.0"  encoding="utf-8"?>         < LinearLayout         xmlns:android="http://schemas.android.com/apk/res/android"         android:orientation="vertical"         android:layout_width="fill_parent"         android:layout_height="fill_parent">         < SurfaceView  android:id="@+id/videoView"         android:visibility="visible"         android:layout_width="320px"         android:layout_height="240px">         < /SurfaceView>         < RelativeLayout         android:layout_width="fill_parent"         android:layout_height="wrap_content">         < Button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="录制"         android:id="@+id/start"/>         < Button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_toRightOf="@id/start"         android:text="停止"         android:id="@+id/stop"/>         < /RelativeLayout>         < /LinearLayout>

Android 录制视频

文章图片

AndroidManifest.xml:
Android 录制视频

文章图片

     < !--  授予该程序录制声音的权限  -->         < uses-permission  android:name="android.permission.RECORD_AUDIO"/>         < !--  授予该程序使用摄像头的权限  -->                 < uses-permission  android:name="android.permission.CAMERA"/>         < uses-permission  android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>         < !--  授予使用外部存储器的权限  -->         < uses-permission  android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Android 录制视频

文章图片

 



    推荐阅读