下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android录制视频
Activity代码: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();
}
}
}布局代码:
<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="/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>AndroidManifest.xml:
<!--
授予该程序录制声音的权限
-->
<uses-permission
android:name="android.permission.RECORD_AUDIO"/>
<!--
授予该程序使用摄像头的权限
-->
<uses-permission
android:name="android.permission.CAMERA"/>
<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论