总结android音频视频操作 (java层代码)

播放音乐和视频用的是类:MediaPlayer 
刻录声音和视频用的是类:MediaRecorder

拍照:Camera

 

没什么难度,都是调用android的API 

1.刻录视频,关键代码如下:

Java代码   收藏代码
  1.              MediaRecorder mediaRecorder = new MediaRecorder();  
  2. mediaRecorder.reset();   //首先重置一下  
  3. mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //从照相机种采集视频  
  4. mediaRecorder.setVideoSource(MediaRecorder.AudioSource.MIC);  //从麦克风中采集声音  
  5. mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //输出格式3GP  
  6. mediaRecorder.setVideoSize(350240);  //视频文件大小  
  7. mediaRecorder.setVideoFrameRate(3);  //录制帧数,每秒3帧  
  8. mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//设置视频编码方式  
  9. mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置声音编码方式  
  10. /*设置保存路径为sd卡根目录*/  
  11. File videoFile = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".3gp");  
  12. mediaRecorder.setOutputFile(videoFile.getAbsolutePath());  
  13. mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface()); //定义一个SurfaceView来显示画面  
  14. mediaRecorder.prepare();    //此处要捕捉异常,底层调用硬件实现准备工作  
  15. mediaRecorder.start();  
  16.   
  17. //停止  
  18. mediaRecorder.stop();  
  19. mediaRecorder.release();  
  20. mediaRecorder=null;  

 

 

2.刻录声音,关键代码如下:

Java代码   收藏代码
  1. //与录制视频很相似  
  2. mRecorder = new MediaRecorder();  
  3. mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);    //声音来源麦克风  
  4. mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  //输出格式  
  5. mRecorder.setOutputFile(mFileName);     //可以自己给定保存文件  
  6. mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  //编码方式  
  7. mRecorder.prepare();  
  8. mRecorder.start();  
 

3.播放声音,关键代码如下:

Java代码   收藏代码
  1. MediaPlayer mPlayer = new MediaPlayer();  
  2.  mPlayer.reset  
  3.  mPlayer.setDataSource(mFileName);      //设置播放的声音文件  
  4.  mPlayer.prepare();  
  5.  mPlayer.start();  
  6.   
  7.  //............  
  8.  //基本方法  
  9.  mPlayer.pause()   //暂停播放  
  10.  mPlayer.stop()     //停止播放  
  11.  mPlayer.seekTo(int)   //直接跳到某点进行播放  

 

4.播放视频,关键代码如下:

Java代码   收藏代码
  1.              MeidaPlayer media = new MeidaPlayer();  
  2.              media.setAudioStreamType(AudioManager.STREAM_MUSIC);  
  3. media.setDisplay(sh);      //定义一个SurfaceView播放它  
  4. media.setDataSource(file.getAbsolutePath());  
  5. media.prepare();  
  6. media.start();  

 

5.拍照,关键代码如下

Java代码   收藏代码
  1.              Camera camera = Camera.open();  
  2. Parameters parameters = camera.getParameters();  
  3. parameters.setPreviewSize(420300);     //设置预览照片的大小  
  4. parameters.setPreviewFrameRate(3);  //每秒3帧  
  5. parameters.setPictureFormat(PixelFormat.JPEG);   //设置照片输出格式  
  6. parameters.set("jpeg-quaility"85);   //设置照片质量  
  7. parameters.setPictureSize(420300);   //设置照片大小  
  8. camera.setParameters(parameters);  
  9. camera.setPreviewDisplay(SurfaceView)  //定义一个 SurfaceView用于显示预览  
  10. camera.startPreview();  
  11.   
  12. //..........  
  13. //按下拍照键后  
  14. //camera.autoFocus(null);   自动对焦  
  15. camera.takePicture(nullnullnew PictureClassback());   //拍照  
  16.              
  17.            //..............  
  18.            //需要实现PictureCallback接口  
  19.           private class PictureClassback implements PictureCallback{  
  20.   
  21. public void onPictureTaken(byte[] abyte0, Camera camera) {  
  22.     Bitmap bitmap = BitmapFactory.decodeByteArray(abyte0, 0, abyte0.length); //根据照片2进制流生成位图  
  23.     File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");  
  24.     FileOutputStream stream = new FileOutputStream(file);  
  25.     bitmap.compress(CompressFormat.JPEG, 100, stream);   //此方法设置照片质量和输出格式,并且保存图片  
  26.     stream.close();  
  27. }  
  28.       
  29.   }  

你可能感兴趣的:(java,android,Stream,null,Parameters,照片)