Android MediaRecorder

AndroidManifest.xml中添加权限标记

<uses-permission android:name="android.permission.RECORD_AUDIO"/>

动态添加权限MainActivity

requestPermissions(new String[]{Manifest.permission.CAMERA,
                Manifest.permission.RECORD_AUDIO},100);

创建MediaRecordActivity,使用Intent连接MainActivity和MediaRecordActivity

startActivity(new Intent(this,MediaRecordActivity.class));

MediaRecordActivity中设置MediaRecorder

@Override
    public void onClick(View view) {
        CharSequence text =btn_opt.getText();
        if (TextUtils.equals(text,"开始")){
            btn_opt.setText("结束");
            camera = Camera.open();   //原始Android Camera类已废弃。应使用CameraX(推荐)或Camera2
            camera.setDisplayOrientation(90);
            camera.unlock();
            mediaRecorder = new MediaRecorder();
            mediaRecorder.setCamera(camera);
            mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置音频源 麦克风
            mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //视频源 摄像头
            mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);//指定视频文件格式
            mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);//设置音频格式
            mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);//设置视频格式
            mediaRecorder.setOrientationHint(90);
            //设置视频输出文件
            mediaRecorder.setOutputFile(new File(getExternalFilesDir(""),"b.mp4").getAbsolutePath());
            mediaRecorder.setVideoSize(640,480);
            mediaRecorder.setPreviewDisplay(new Surface(textureView.getSurfaceTexture()));
            try {
                mediaRecorder.prepare();
            } catch (IOException e) {
                e.printStackTrace();
            }
            mediaRecorder.start();
        }else {
            btn_opt.setText("开始");
            mediaRecorder.stop();
            mediaRecorder.release();
            camera.stopPreview();
            camera.release();
        }
    }

MediaRecorder状态图

 MediaRecorder详细请参考

MediaRecorder 概览  |  Android media  |  Android Developers (google.cn)

MediaRecorder  |  Android Developers (google.cn)

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 01:10:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 01:10:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 01:10:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 01:10:01       20 阅读

热门阅读

  1. 单台服务器(非集群节点)向Hadoop集群传输数据

    2024-04-01 01:10:01       16 阅读
  2. C++计算资本市场收益及成本分配数学方程

    2024-04-01 01:10:01       15 阅读
  3. nginx配置

    2024-04-01 01:10:01       15 阅读
  4. nginx如何清理页面缓存

    2024-04-01 01:10:01       14 阅读
  5. Linux进程的基本概念

    2024-04-01 01:10:01       15 阅读
  6. VPP添加接口IP地址

    2024-04-01 01:10:01       14 阅读
  7. Activity入门1

    2024-04-01 01:10:01       11 阅读
  8. 【c++20】CPP-20-STL-Cookbook 学习笔记

    2024-04-01 01:10:01       20 阅读
  9. Leetcode 3100. Water Bottles II

    2024-04-01 01:10:01       16 阅读