Chinaunix首页 | 论坛 | 博客
  • 博客访问: 809843
  • 博文数量: 76
  • 博客积分: 2211
  • 博客等级: 上尉
  • 技术积分: 1693
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-26 19:36
文章分类

全部博文(76)

文章存档

2012年(67)

2011年(9)

分类: 嵌入式

2012-03-23 18:30:23

我们还是先来看看主要的代码:

java代码:
  1. package eoe.demo.Media;

  2. import java.io.File;
  3. import java.io.IOException;

  4. import android.app.Activity;
  5. import android.media.MediaRecorder;
  6. import android.os.Bundle;
  7. import android.os.Environment;
  8. import android.view.SurfaceHolder;
  9. import android.view.SurfaceView;
  10. import android.view.View;
  11. import android.view.View.OnClickListener;
  12. import android.widget.Button;

  13. public class VideoActivity extends Activity {

  14. private File myRecAudioFile;
  15. private SurfaceView mSurfaceView;
  16. private SurfaceHolder mSurfaceHolder;
  17. private Button buttonStart;
  18. private Button buttonStop;
  19. private File dir;
  20. private MediaRecorder recorder;

  21. @Override
  22. public void onCreate(Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.video);
  25. mSurfaceView = (SurfaceView) findViewById(R.id.videoView);
  26. mSurfaceHolder = mSurfaceView.getHolder();
  27. mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  28. buttonStart=(Button)findViewById(R.id.start);
  29. buttonStop=(Button)findViewById(R.id.stop);
  30. File defaultDir = Environment.getExternalStorageDirectory();
  31. String path = defaultDir.getAbsolutePath()+File.separator+"V"+File.separator;
  32. //创建文件夹存放视频
  33. dir = new File(path);
  34. if(!dir.exists()){
  35. dir.mkdir();
  36. }
  37. recorder = new MediaRecorder();

  38. buttonStart.setOnClickListener(new OnClickListener() {
  39. @Override
  40. public void onClick(View v) {
  41. recorder();
  42. }
  43. });

  44. buttonStop.setOnClickListener(new OnClickListener() {
  45. @Override
  46. public void onClick(View v) {
  47. recorder.stop();
  48. recorder.reset();
  49. recorder.release();
  50. recorder=null;
  51. }
  52. });
  53. }



  54. public void recorder() {
  55. try {
  56. myRecAudioFile = File.createTempFile("video", ".3gp",dir);//创建临时文件
  57. recorder.setPreviewDisplay(mSurfaceHolder.getSurface());//预览
  58. recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//视频源
  59. recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //录音源为麦克风
  60. recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//输出格式为3gp
  61. recorder.setVideoSize(800, 480);//视频尺寸
  62. recorder.setVideoFrameRate(15);//视频帧频率
  63. recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//视频编码
  64. recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音频编码
  65. recorder.setMaxDuration(10000);//最大期限
  66. recorder.setOutputFile(myRecAudioFile.getAbsolutePath());//保存路径
  67. recorder.prepare();
  68. recorder.start();
  69. } catch (IOException e) {
  70. e.printStackTrace();
  71. }
  72. }
  73. }
复制代码

我们现在就来看看布局的代码,其实在一个程序当中布局是很关键的,希望大家要多多的有自己的思想在里面,别老是用死板的界面:

java代码:

  1. xmlns:android=""
  2. android:orientation="vertical"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. android:visibility="visible"
  6. android:layout_width="320px"
  7. android:layout_height="240px">


  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content">
复制代码

最后我们就来看看AndroidManifest.xml代码:

java代码:

  1. package="eoe.demo.Media"
  2. android:versionCode="1"
  3. android:versionName="1.0">

  4. android:label="@string/app_name">











 文章转自:

阅读(7895) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~