Android 调用前置摄像头

本文介绍了在Android中如何调用前置摄像头进行录制,特别是针对2.3之前版本的设备,由于各厂商实现不一致带来的兼容性挑战。作者通过实例代码展示了如何使用MediaRecorder进行视频录制,并探讨了如何针对HTC和Samsung等品牌手机手动设置前置摄像头。文章强调了Android在不同版本间API的不统一给开发者带来的困扰。
摘要由CSDN通过智能技术生成
               

转自:http://www.cnblogs.com/stay/archive/2011/06/24/2089129.html

首先,鄙人要发泄下对Android小小的不满,为神马2.3才有api来支持front Camera ,为神马2.3之前的版本也会有前置摄像头,为神马每个厂商的调用前置摄像头的方式都不一样。尼玛同样是写程序,至于搞那么多不同版本不同兼容性问题么。生物识别技术你们伤不起啊!!!GOOGLE 您神马时候才能统一啊!!!别折磨我们这群蛋疼的码农了。该死的魂淡厂商们,你们大致统一一下行不行,坑爹的。

if(model.equals(SUMSUNG&HTC&MOTO)){system.exit(0)}//支持山寨。

先说如何录频吧。最简单的,调用MediaRecorder,最好开个子线程去写:

这里网上有很多帖子都说,有bug,问题出在编码上,因为每个厂商支持的视频编码有点差异,所以别指望同一个代码能支持所有的手机。我用H264测试了十部手机,

9个通过,1个坑爹的HTC 野火不支持。所以还是使用DEFAULT吧。MediaRecorder.VideoEncoder.DEFAULT

 Runnable run = new Runnable() {
  public void run() {
   try {
    myRecAudioFile = new File(Environment.getExternalStorageDirectory(), "video.mp4");// 创建临时文件
    if (myRecAudioFile.exists()) {
     myRecAudioFile.delete();
    }
    myRecAudioFile.createNewFile();
    recorder.reset();
    recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);// 视频源
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 录音源为麦克风
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);// 输出格式为mp4
    recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);// 视频编码
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);// 音频编码
    recorder.setVideoFrameRate(15);// 视频帧频率
    recorder.setVideoSize(320, 240);// 视频尺寸
    recorder.setPreviewDisplay(mSurfaceHolder.getSurface());// 预览
    // recorder.setMaxDuration(10000);// 最大期限
    recorder.setOutputFile(myRecAudioFile.getAbsolutePath());// 保存路径
    recorder.prepare();
    recorder.start();
    mHandler.sendEmptyMessageDelayed(1, 10000);
   } catch (Exception e) {
    stop(true);
   }
  }
 };

现在

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值