栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中初始化MediaRecorder的实现方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中初始化MediaRecorder的实现方法

java中初始化MediaRecorder

实现代码:

private boolean initializeVideo() {  
    Log.v(TAG, "initializeVideo");  
     
    if (mSurfaceHolder == null) {  
      Log.v(TAG, "SurfaceHolder is null");  
      return false;  
    }  
 
    mMediaRecorderRecording = true;  
 
    if (mMediaRecorder == null)  
 mMediaRecorder = new MediaRecorder();  
    else 
 mMediaRecorder.reset();  
    if (mCamera != null) {  
 if (Integer.parseInt(Build.VERSION.SDK) >= 8)  
     VideoCameraNew2.reconnect(mCamera);  
 mCamera.release();  
 mCamera = null;  
    }  
 
    if (useFront && Integer.parseInt(Build.VERSION.SDK) >= 5) {  
     if (isAvailableSprintFFC)  
     {  
  try 
  {  
      Method method = Class.forName("android.hardware.HtcFrontFacingCamera").getDeclaredMethod("getCamera", null);  
      mCamera = (Camera) method.invoke(null, null);  
  }  
  catch (Exception ex)  
  {  
      Log.d(TAG, ex.toString());  
  }  
     } else {  
  mCamera = Camera.open();  
  Camera.Parameters parameters = mCamera.getParameters();  
  parameters.set("camera-id", 2);  
  mCamera.setParameters(parameters);  
     }  
     VideoCameraNew.unlock(mCamera);  
     mMediaRecorder.setCamera(mCamera);  
 mVideoPreview.setonClickListener(this);  
    }  
    mVideoPreview.setonLongClickListener(this);  
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);  
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  
    mMediaRecorder.setOutputFile(sender.getFileDescriptor());  
 
 mMediaRecorder.setVideoframeRate(20);  
    if (videoQualityHigh) {  
      mMediaRecorder.setVideoSize(352,288);  
    } else {  
      mMediaRecorder.setVideoSize(176,144);  
    }  
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);  
    mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());  
 
    try {  
      mMediaRecorder.prepare();  
      mMediaRecorder.setonErrorListener(this);  
      mMediaRecorder.start();  
    } catch (IOException exception) {  
      releaseMediaRecorder();  
      finish();  
      return false;  
    }  
    return true;  
  } 
private boolean initializeVideo() { 
    Log.v(TAG, "initializeVideo"); 
     
    if (mSurfaceHolder == null) { 
      Log.v(TAG, "SurfaceHolder is null"); 
      return false; 
    } 
 
    mMediaRecorderRecording = true; 
 
    if (mMediaRecorder == null) 
 mMediaRecorder = new MediaRecorder(); 
    else 
 mMediaRecorder.reset(); 
    if (mCamera != null) { 
 if (Integer.parseInt(Build.VERSION.SDK) >= 8) 
     VideoCameraNew2.reconnect(mCamera); 
 mCamera.release(); 
 mCamera = null; 
    } 
 
    if (useFront && Integer.parseInt(Build.VERSION.SDK) >= 5) { 
     if (isAvailableSprintFFC) 
     { 
  try 
  { 
      Method method = Class.forName("android.hardware.HtcFrontFacingCamera").getDeclaredMethod("getCamera", null); 
      mCamera = (Camera) method.invoke(null, null); 
  } 
  catch (Exception ex) 
  { 
      Log.d(TAG, ex.toString()); 
  } 
     } else { 
  mCamera = Camera.open();  
  Camera.Parameters parameters = mCamera.getParameters();  
  parameters.set("camera-id", 2);  
  mCamera.setParameters(parameters);  
     } 
     VideoCameraNew.unlock(mCamera); 
     mMediaRecorder.setCamera(mCamera); 
 mVideoPreview.setonClickListener(this); 
    } 
    mVideoPreview.setonLongClickListener(this); 
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    mMediaRecorder.setOutputFile(sender.getFileDescriptor()); 
 
 mMediaRecorder.setVideoframeRate(20); 
    if (videoQualityHigh) { 
      mMediaRecorder.setVideoSize(352,288); 
    } else { 
      mMediaRecorder.setVideoSize(176,144); 
    } 
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); 
    mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface()); 
 
    try { 
      mMediaRecorder.prepare(); 
      mMediaRecorder.setonErrorListener(this); 
      mMediaRecorder.start(); 
    } catch (IOException exception) { 
      releaseMediaRecorder(); 
      finish(); 
      return false; 
    } 
    return true; 
  } 
 
private void releaseMediaRecorder() {  
    Log.v(TAG, "Releasing media recorder.");  
    if (mMediaRecorder != null) {  
      mMediaRecorder.reset();  
      if (mCamera != null) {  
     if (Integer.parseInt(Build.VERSION.SDK) >= 8)  
  VideoCameraNew2.reconnect(mCamera);  
     mCamera.release();  
     mCamera = null;  
      }  
      mMediaRecorder.release();  
      mMediaRecorder = null;  
    }  
  }  
      
  public void onError(MediaRecorder mr, int what, int extra) {  
    if (what == MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN) {  
      finish();  
    }  
  } 
private void releaseMediaRecorder() { 
    Log.v(TAG, "Releasing media recorder."); 
    if (mMediaRecorder != null) { 
      mMediaRecorder.reset(); 
      if (mCamera != null) { 
     if (Integer.parseInt(Build.VERSION.SDK) >= 8) 
  VideoCameraNew2.reconnect(mCamera); 
     mCamera.release(); 
     mCamera = null; 
      } 
      mMediaRecorder.release(); 
      mMediaRecorder = null; 
    } 
  } 
     
  public void onError(MediaRecorder mr, int what, int extra) { 
    if (what == MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN) { 
      finish(); 
    } 
  } 
 
private void stopVideoRecording() {  
    Log.v(TAG, "stopVideoRecording");  
    if (mMediaRecorderRecording || mMediaRecorder != null) {  
 Receiver.listener_video = null;  
 t.interrupt();  
      RtpStreamSender.delay = 0;  
 
      if (mMediaRecorderRecording && mMediaRecorder != null) {  
 try {  
   mMediaRecorder.setonErrorListener(null);  
   mMediaRecorder.setonInfoListener(null);  
   mMediaRecorder.stop();  
 } catch (RuntimeException e) {  
   Log.e(TAG, "stop fail: " + e.getMessage());  
 }  
 
 mMediaRecorderRecording = false;  
      }  
      releaseMediaRecorder();  
    }  
  } 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/143570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号