首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用MediaRecorder仅录制音频

要使用MediaRecorder仅录制音频,请按照以下步骤操作:

  1. 首先,在AndroidManifest.xml文件中添加必要的权限:
代码语言:javascript
复制
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  1. 检查是否有麦克风权限和存储权限:
代码语言:javascript
复制
private void checkPermissions() {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED ||
            ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
    }
}
  1. 创建一个MediaRecorder实例来录制音频:
代码语言:javascript
复制
private MediaRecorder mediaRecorder;
private String outputFile;

private void initMediaRecorder() {
    mediaRecorder = new MediaRecorder();
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recorded_audio.3gp";
    mediaRecorder.setOutputFile(outputFile);
}
  1. 准备并开始录制音频:
代码语言:javascript
复制
private void startRecording() {
    try {
        initMediaRecorder();
        mediaRecorder.prepare();
        mediaRecorder.start();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
  1. 停止录制音频并释放资源:
代码语言:javascript
复制
private void stopRecording() {
    mediaRecorder.stop();
    mediaRecorder.release();
    mediaRecorder = null;
}
  1. 调用startRecording()和stopRecording()方法来控制录音。

请注意,上述代码示例假定您已经有了一个活动类,并在其中实现了这些方法。在运行时,请确保已授予所需的权限。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

音视频基础能力之 Andoid 音频篇(二):音频录制

如果您对录制格式不是很清楚的话,可以点击看下这篇文章:一文搞清多媒体格式(建议收藏)。 MediaRecorder 通常是音频、视频搭配一起使用,也可以单独使用。...MediaRecorder 的使用场景通常是本地录制,如果您没有对音频、视频流有额外的处理操作,使用这个 API 无疑是最佳的解决方案。 上图是官方提供的 MediaRecorder 运行状态图。...上文也提及到通常使用 MediaRecorder 是为了本地录制用的,所以我们这里选择MIC。 执行完这行代码,MediaRecorder 对象将进入 Initialized 状态。...我们这里选择了使用音频的 aac 编码,mp4 的封装格式。执行完这几步代码,MediaRecorder 会帮我们创建和配置编码器、封装器等工作。...2.4 开始录制 这个步骤执行完成之后,MediaRecorder 内部会进入 Recording 状态,字如其名,MediaRecorder 开启启动了采集,内部的录制管线(音频采集 → 编码 → 封装

20210
  • Android FFmpeg 实现带滤镜的微信小视频录制功能

    本文将实现对采集的预览帧(添加滤镜)和 PCM 音频同时编码复用生成一个 mp4 文件,即实现一个仿微信小视频录制功能。 音视频录制编码流程 ?...image.getWidth(), image.getHeight()); } image.close(); } } }; Java 层音频使用的是...//音视频录制的封装类 class MediaRecorder { public: MediaRecorder(const char *url, RecorderParam *param);...~MediaRecorder(); //开始录制 int StartRecord(); //添加音频数据到音频队列 int OnFrame2Encode(AudioFrame...带滤镜的小视频录制 参考上图,我们在 GL 线程里首先创建 FBO ,先将预览帧渲染到 FBO 绑定的纹理上添加滤镜,之后使用 glreadpixels 读取添加完滤镜之后的视频帧放入编码线程编码,最后绑定到

    82430

    Android多媒体录制--MediaRecorder视频录制

    Android使用MediaRecorder类进行视频的录制。...需要注意,使用MediaRecorder 录音录像 的设置代码步骤一定要按照API指定的顺序来设置,否则报错 步骤为: 1、设置视频源,音频源,即输入源 2、设置输出格式 3、设置音视频的编码格式 一、...(MediaRecorder.VideoSource.CAMERA); //2.设置视频,音频的输出格式 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP...//3.设置音频的编码格式 70 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 71...音频录制的coder学习,存在一些Bug和不足,各位coder可以继续拓展 不足: 1、只有当点击“开始录制”的时候SurfaceView组件才可以看到摄像头拍摄的预览,否则是一篇黑,这里可以看下Canera

    2.7K70

    【FFmpeg】音视频录制 ③ ( 使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备 | 录制桌面 | 录制音频 | 同时录制 音频和视频数据 )

    使用 Screen Capturer Recorder 软件生成 ffmpeg 可录制的音视频设备 ) 中 , 安装了 Screen Capturer Recorder 软件 , 在 Windows 系统中生成了...; 二、使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备 1、录制桌面 执行 ffmpeg -f dshow -i video="screen-capture-recorder...ffmpeg 命令 使用的输入格式为 DirectShow , 这是 Windows 系统中用于视频捕获和音频捕获的框架 ; -i video="screen-capture-recorder"..., 帧数 , 大小 , 码率 等参数 ; 录制时 , 按下回车 , 在按下 Ctrl + C 组合键 , 即可停止录制 ; 使用 ffplay 命令 , 可正常播放该视频 , 使用 MediaInfo...虚拟音频设备 ; 录制的过程中 , 会在 命令行底部 实时显示 录制音频的 大小 , 时间 , 帧率 , 速度 等参数 ; 先按回车 , 再按 Ctrl + C 组合键 , 就可以停止音频录制 ; 3

    62210

    录屏工具开发

    使用起来还是比较简单的。 这里我们来开发一个屏幕录制工具。 首先我们在页面中创建一个video标签,用于展示录屏的内容,再创建四个按钮,一个屏幕分享,一个开始录制,一个停止录制,一个下载视频。...现在我们知道使用getDisplayMedia是可以将我们的屏幕内容采集到的,如果想要将内容录制下来并且下载到本地需求使用WebRTC提供的另外一个类MediaRecorder。...主要有mimeType指定录制的是音频还是视频,录制的格式是什么。..., 首先需要使用MediaRecorder.isTypeSupported方法判断浏览器是否支持这种视频格式。...使用new方法创建Blol实例,传入我们录制的buf和媒体类型,注意这里的类型要和之前录制的一致,我们这里使用webm。 接着使用URL的的createObjectURL方法将blob转换为地址链接。

    2K30

    uni-app实战案例:实现H5页面麦克风权限获取与录音功能

    目录前言技术背景与需求分析具体实现在uni-app中配置麦克风权限实现麦克风权限获取与录音功能功能一:将音频流转换为Blob文件并上传功能二:将音频流转换为Base64字符串并上传功能三:下载录制的音频文件结语前言你好...比如,接到一个需求,要求在聊天对话框中实现语音识别功能,用户点击按钮开始录音,再次点击按钮停止录音,并将录制的音频转换成文字进行显示。...getUserMedia用于获取媒体流,包括音频、视频等,而MediaRecorder则用于录制这些媒体流。...在实际项目中,我们可能会将录制的音频处理为两种形式:一种是生成Blob文件并上传至后端,另一种是将音频流转换为Base64字符串上传。...,你可能还需要将录制的音频文件下载到用户本地。

    2.5K20

    使用 MediaStream Recording API 和 Web Audio API 在浏览器中处理音频(未完待续)

    使用 MediaStream Recording API 和 Web Audio API 在浏览器中处理音频 1....背景 最近项目上有个需求,需要实现:录音、回放录音、实现音频可视化效果、上传wav格式的录音等功能。于是乎,我就顺便调研了下如何在浏览器中处理音频,发现 HTML5 中有专门的API用来处理音频。...可以把它想象成这样: 或者,更形象点: 2.2 MediaRecorder MediaRecorder是MediaStream Recording API的核心接口,用来进行媒体录制。...我们可以形象地把它想象成录音机: new MediaRecorder(stream, options) ==> 这里的 stream 就是一个 MediaStream。 它表示将要录制的流。...2.4 AudioContext 使用Web Audio API相关接口前,你必需创建一个AudioContext。一切操作都在这个环境里进行。

    63020

    Electron Chromium 屏幕录制 - 那些我踩过的坑

    的类,用于我们传入媒体流并录制视频,因此如何创建 MediaRecorder 并发起录制,是录屏的核心。...MediaRecorder 本身支持仅支持录制 webm 格式,但支持多种编码格式,例如:vp8、vp9、h264 等,MediaRecorder 贴心的提供了一个 API,方便我们测试编码格式兼容性...,如果同时录制音频流+视频流,那么**“由于音频流锁屏时的状态始终保持活跃”,而“仅视频流锁屏时会触发状态变为不活跃”**,由于并非全部轨道都变为不活跃,这里“MediaRecorder 并不会触发 ondataavailable...2GB,而不使用录屏功能的用户,主进程内存占用仅 80MB,这说明百分百存在内存泄露。...缓冲区内存释放问题的解法,相信大家也能想到了,在录制过程中,未对 MediaRecorder stop 前,由于 MediaRecorder 录制的全部数据均存储于 Renderer 进程中,便会造成内存的异常占用

    4.3K40

    【音频处理】Melodyne 导入音频 ( 使用 Adobe Audition 录制音频 | 在 Melodyne 中打开录制的音频 | Melodyne 对音频素材的操作 | 音频分析算法 )

    文章目录 一、使用 Adobe Audition 录制音频 二、在 Melodyne 中打开录制的音频 三、Melodyne 对音频素材的操作 四、Melodyne 音频分析算法 一、使用 Adobe...Audition 录制音频 ---- 参考 【音频处理】使用 Adobe Audition 录制电脑内部声音 ( 启用电脑立体声混音 | Adobe Audition 中设置音频设备 | Adobe Audition...内录 ) 博客进行内录 ; 二、在 Melodyne 中打开录制的音频 ---- 将上述录制完毕的音频直接拖动到 Melodyne 软件的空白处 , 可以自动打开该音频 , 同时自动分析该音频的音高...---- Melodyne 对音频素材进行了如下分析 : 转换成音符 : 录制的素材 , 被 Melodyne 转为单个波形 , 以音符的形式显示在对应音高位置上 , 横轴是时间 , 纵轴是音高 ,...取值范围 0 ~ 127 ; 编辑声部类型 : Melodyne 既可以编辑 旋律声部 如人声演唱 , 乐器演奏等 , 也可以编辑 节奏声部 如 打击乐器 ; 如果录入的是打击乐 , 使用的是另外一种算法

    8.4K40

    Android开发笔记(五十七)录像录音与播放

    媒体录制MediaRecorder MediaRecorder是Android自带的录制工具,通过操纵摄像头和麦克风完成媒体录制,既可录制视频,也可单独录制音频。...可监听录制结束事件,包括达到录制时长或者达到录制大小。 以上方法用于关联录像工具和事件。 setAudioSource : 设置音频来源。一般使用麦克风AudioSource.MIC。...setAudioChannels : 设置音频的声道数。1表示单声道,2表示双声道。该方法为可选 setAudioEncodingBitRate : 设置音频每秒录制的字节数。越大则音频越清晰。...该方法为可选 以上六个方法用于录制音频。 setVideoSource : 设置视频来源。一般使用摄像头VideoSource.CAMERA。...该方法为视频播放专用,播放音频不需要该方法。 setSurface : 设置播放表层,一般使用SurfaceHolder.getSurface。

    3.3K62

    音频缺失录制分析

    ,导致录制RTMP Reader无法正确初始化音频的AVCodecContext,进而影响录制Muxing音频AVCodecContext初始化,最终导致录制文件出现静音等问题。...AVCodecContext指针则为0,忽略音频录制则静音录制。...该场景实际是会影响音频AVCodecContext的extradata的初始化,该场景中,录制代码对录制hls和非hls有不同的做法,录制hls时,放弃录制音频,其他格式则依旧使用无extradata的...本实验也对该场景做了详细实验: 1.录制flv/mp4时,无extradata也可以正常录制音频数据,播放正常; 2.录制hls时,若强制使用无extradata的AVCodecContext进行录制,...实验过程中发现,以上3种场景,只要推流端之后能正确推音频数据上来,录制中使用avformat_open_input得到的AVFormatContext中的音频AVCodecContext都会被正确初始化

    1.4K30

    语音项目——Android录音学习

    MediaRecorder:录制的音频文件是经过压缩后的,需要设置编码器。并且录制的音频文件可以用系统自带的Music播放器播放。...MediaRecorder(基于文件录音) 已集成了录音,编码,压缩等。封装度很高,操作简单,录制的音频文件可以用系统自带的播放器播放。 缺点:无法实现实时处理音频,输出的音频格式少。...录制的音频文件是经过压缩后的,需要设置编码器。 技术选型,目前行业现状:API多是选用AudioRecord。...,接受的值定义在MediaRecorder.AudioSource里面,一般来说使用DEFAULT或者MIC即可。...可以设置的来源包括: MediaRecorder.AudioSource.CAMCORDER :设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风 MediaRecorder.AudioSource.DEFAULT

    3.3K10
    领券