当前位置: 首页 » 综合知识 » it知识 » 正文

java怎么初始化MediaRecorder

发布时间:2023-08-02 以下文章来源于网友投稿,内容仅供参考!

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();  
    }  
  }
  • • Linux Ecdsa密钥长度选择有何依据

    在Linux

  • • Linux Khook在内核监控中的应用如何

    Linux

  • • Linux Gsoap是否支持异步通信

    GSOAP是

  • • Linux Coremail如何提升用户体验

    提升Linu

  • • Linux Ecdsa算法有哪些局限性

    ECDSA

  • 哎呀音乐钢琴键盘学习《 钢琴主人训练营》 西瓜学琴
    郭蝈 陪练钢琴 30节课时 考级刚需 让孩子每一次练琴都是高质量的
    30天轻松学会五线谱 流行钢琴自学初级教程 牙牙学琴
    流行爵士钢琴实战技巧VIP课 - 继伟 哎呀音乐
    【海上钢琴师】原版 MT1990钢琴谱
    百首经典流行钢琴实战曲集 - 继伟
    雷费尔德电钢琴重锤88键专业考级儿童初学者数码电子钢琴家用
    小练咖 真人钢琴陪练 1v1服务 2999随时退 1课时50分钟 考级刚需
    雅马哈电钢琴88键重锤CLP735智能数码电子钢琴家用专业初学者考级
    【原装进口】Yamaha/雅马哈钢琴 b121 SC2原声静音钢琴
  • 珠海专业调钢琴
  • 天津宝坻区调钢琴
  • 天津静海区钢琴调音
  • 成都简阳市钢琴调律
  • 大连瓦房店市钢琴调音
  • 眉山调钢琴联系方式
  • 惠州大亚湾钢琴调琴师
  • 长治调琴师
  • 厦门湖里区钢琴调音师
  • 上海普陀区钢琴调音师