首页 > 其他 > 详细

Andriod录制视频(一)

时间:2014-04-16 13:59:56      阅读:463      评论:0      收藏:0      [点我收藏+]

Java代码:
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; 

@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(); 


 

 

 

界面代码:

<?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> 

 

 

manifest文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android
package="eoe.demo.Media" 
android:versionCode="1" 
android:versionName="1.0"> 
<application android:icon="@drawable/rabbit" android:label="@string/app_name"> 
<activity android:name=".VideoActivity" 
android:label="@string/app_name"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity> 
</application> 

<uses-sdk android:minSdkVersion="7" /> 
<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.RECORD_AUDIO"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
</manifest> 

 

本文出自 “Focus_000” 博客,转载请与作者联系!

Andriod录制视频(一),布布扣,bubuko.com

Andriod录制视频(一)

原文:http://120806872.blog.51cto.com/8289253/1395801

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!