android基础代码实例:录制视频
来源:互联网 发布:全球网络覆盖率 编辑:程序博客网 时间:2024/04/29 23:09
package org.crazyit.sound;import java.io.File;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.ImageButton;import android.widget.Toast;/** * Description: * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a> * <br/>Copyright (C), 2001-2014, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author Yeeku.H.Lee kongyeeku@163.com * @version 1.0 */public class RecordVideo extends Activity implements OnClickListener{ // 程序中的两个按钮 ImageButton record , stop; // 系统的视频文件 File videoFile ; MediaRecorder mRecorder; // 显示视频预览的SurfaceView SurfaceView sView; // 记录是否正在进行录制 private boolean isRecording = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获取程序界面中的两个按钮 record = (ImageButton) findViewById(R.id.record); stop = (ImageButton) findViewById(R.id.stop); // 让stop按钮不可用。 stop.setEnabled(false); // 为两个按钮的单击事件绑定监听器 record.setOnClickListener(this); stop.setOnClickListener(this); // 获取程序界面中的SurfaceView sView = (SurfaceView) this.findViewById(R.id.sView); // 设置Surface不需要自己维护缓冲区 sView.getHolder().setType(SurfaceHolder .SURFACE_TYPE_PUSH_BUFFERS); // 设置分辨率 sView.getHolder().setFixedSize(320, 280); // 设置该组件让屏幕不会自动关闭 sView.getHolder().setKeepScreenOn(true); } @Override public void onClick(View source) { switch (source.getId()) { // 单击录制按钮 case R.id.record: if (!Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED)) { Toast.makeText(RecordVideo.this , "SD卡不存在,请插入SD卡!" , Toast.LENGTH_SHORT).show(); return; } try { // 创建保存录制视频的视频文件 videoFile = new File(Environment .getExternalStorageDirectory() .getCanonicalFile() + "/myvideo.mp4"); // 创建MediaPlayer对象 mRecorder = new MediaRecorder(); mRecorder.reset(); // 设置从麦克风采集声音 mRecorder.setAudioSource(MediaRecorder .AudioSource.MIC); // 设置从摄像头采集图像 mRecorder.setVideoSource(MediaRecorder .VideoSource.CAMERA); // 设置视频文件的输出格式 // 必须在设置声音编码格式、图像编码格式之前设置 mRecorder.setOutputFormat(MediaRecorder .OutputFormat.MPEG_4); // 设置声音编码的格式 mRecorder.setAudioEncoder(MediaRecorder .AudioEncoder.DEFAULT); // 设置图像编码的格式 mRecorder.setVideoEncoder(MediaRecorder .VideoEncoder.MPEG_4_SP); mRecorder.setVideoSize(320, 280); // 每秒 4帧 mRecorder.setVideoFrameRate(4); mRecorder.setOutputFile(videoFile.getAbsolutePath()); // 指定使用SurfaceView来预览视频 mRecorder.setPreviewDisplay(sView .getHolder().getSurface()); //① mRecorder.prepare(); // 开始录制 mRecorder.start(); System.out.println("---recording---"); // 让record按钮不可用。 record.setEnabled(false); // 让stop按钮可用。 stop.setEnabled(true); isRecording = true; } catch (Exception e) { e.printStackTrace(); } break; // 单击停止按钮 case R.id.stop: // 如果正在进行录制 if (isRecording) { // 停止录制 mRecorder.stop(); // 释放资源 mRecorder.release(); mRecorder = null; // 让record按钮可用。 record.setEnabled(true); // 让stop按钮不可用。 stop.setEnabled(false); } break; } }}
源码查看:链接: http://pan.baidu.com/s/1Bjcaq 密码: a5ed
1 0
- android基础代码实例:录制视频
- Android基础--MediaRecorder类实现视频录制
- android MediaRecorder 录制音频、视频代码片段
- android视频录制(调用系统视频录制)
- android MediaRecorder录制音视频实现直播的基础
- Android 视频录制
- android视频录制
- android 音视频录制
- android视频录制例子
- Android录制视频(五)
- Android录制视频(四)
- Android录制视频(三)
- Android录制视频(二)
- Android录制视频(一)
- Android视频录制
- VLC Android录制视频
- android-音视频录制
- Android MediaRecord视频录制
- javaSE(17)(打印流、转换流、对象流、配置文件和递归)
- 苹果的拒信
- cocos2dx3.4开发环境搭建详解(3) cocos2dx lua项目发布到android手机
- Windows7+VS2010下OpenGL的环境配置
- Html5应用屏幕适配方案
- android基础代码实例:录制视频
- java.util.concurrent部分类解析
- python根据百度地图api将地址转成经纬度
- C-017.计算机中的进制、以及进制之间的转换
- ypcat在NIS环境下获取特定的内容
- ssh 分页struts2+hibernate3+spring 分页
- SharePoint2010无域环境的安装配置图解
- Android检测是否有网络
- 关于启动Appach时出现Apache shutdown unexpectedly问题的解决方法