MediaRecorder录制音频

Android Multimedia实战(二)使用MediaRecorder实现分段录制视频,mp4parser合成视频功能 1.MediaRecorder类介绍: MediaRecorder类是Android sdk提供的一个专门用于音视频录制,一般利用手机麦克风采集音频,摄像头采集图片信息。 MediaRecorder主要函数:setAudioChannels(int numChannels) 设置录制的音频通道数setAudioEncoder(int audio_encoder) 设置audio的编码格式setAu 阅读详情

Android音视频架构与学习路线

MediaRecorder是Android提供的简单的录制音视频的API,它只能以文件的形式输出。这里我们要讲的是它的录音功能。

比较简单,开始录制前需要配置几个参数

private void initRecorder() {
        try {
            mRecorder = new MediaRecorder();
            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置源
            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); // 设置编码格式
            mRecorder.setOutputFile(mRecordFile.getAbsolutePath());
            mRecorder.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

MediaRecorder不支持暂停,而且需要注意的点是每次录制完后需要重新调用该方法进行配置,不然会报错

下面看全部代码

package com.codeforfree.cffaudiorecorddemo;

import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.io.File;
import java.io.IOException;

public class MediaRecordActivity extends AppCompatActivity {

    private MediaRecorder mRecorder;
    private File mRecordFile;
    private RecordStatus mRecordStatus;
    private Button mRecordBtn;
    private TextView mResultText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_media_record);
        mRecordBtn = findViewById(R.id.record_btn);
        mResultText = findViewById(R.id.result_text);
        mRecordFile = new File(getExternalFilesDir(""), "demo.aac");
        mRecordStatus = RecordStatus.IDLE;
        mRecordBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onButtonClick();
            }
        });

    }

    /**
     * 每次录完必须重新调调用此方法,不然会报错
     **/
    private void initRecorder() {
        try {
            mRecorder = new MediaRecorder();
            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置源
            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); // 设置编码格式
            mRecorder.setOutputFile(mRecordFile.getAbsolutePath());
            mRecorder.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void onButtonClick() {
        if (mRecordStatus == RecordStatus.IDLE) {
            startRecord();
            mRecordBtn.setText("结束录制");
            mResultText.setText("录制中...");

        } else if (mRecordStatus == RecordStatus.RECORDING) {
            stopRecord();
            mRecordBtn.setText("开始录制");
            mResultText.setText("文件存储在" + mRecordFile.getAbsolutePath());
        }
    }


    private void startRecord() {
        initRecorder();
        mRecordStatus = RecordStatus.RECORDING;
        mRecorder.start();
    }

    private void stopRecord() {
        if (mRecorder != null && mRecordStatus == RecordStatus.RECORDING) {
            mRecordStatus = RecordStatus.IDLE;
            mRecorder.stop();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mRecorder != null) {
            mRecorder.release();
        }
    }

    enum RecordStatus {
        IDLE,
        RECORDING
    }

}

 

Android MediaRecorder.setOutputFormat详解与最佳实践 在多媒体开发中,容器格式是组织音视频数据的核心框架,决定了文件的存储结构和兼容性。Android通过MediaRecorder.setOutputFormat方法控制录制文件的容器格式,支持MPEG_4、AAC_ADTS等多种标准。理解容器格式与编码格式的区别至关重要,例如MP4作为容器可以封装H.264视频和AAC音频。正确使用该接口需要遵循严格的状态机顺序,并考虑设备兼容性、音质需求和后期处理等因素。在音频录制、实时流传输等场景中,合理选择输出格式能显著提升稳定性和性能。本文通过典型错误分析和优化技巧, 阅读详情

相关推荐

MediaRecorder录制音频文件

MediaRecorder录制音频文件使用手机麦克风硬件和Android系统MediaRecorder类实现。步骤: 在activity_main文件上添加两个按钮,分别为开始按钮和停止按钮。 //获取按钮 record = (Button)findViewById(R.id.record); stop =(Button)findViewById(R.id.stop); record.set

mingxi_kay的博客 2224

Android 多媒体框架之音频录制 MediaRecorder 和 AudioRecorder

Android 多媒体框架针对音频录制提供了两种方法:MediaRecorder和AudioRecord。AudioRecord和MediaRecorder两种都可以录制音频,MediaRecorder已实现大量的封装,操作起来更加简单,而AudioRecord使用起来更加灵活,能实现更多的功能。

特立独行的博客 1万+

26、从头学Android之多媒体--使用MediaRecorder录制音频

MediaRecoder 内部类或接口: 常用的方法       方法名称       描述       public void setAudioEncoder (int audio_encoder)       设置刻录的音频编码,其值可以通过MediaRecoder内部类的MediaRecorder.AudioEncoder的几个

90worker 1万+

关于MediaRecorder中的setAudioEncoder和setOutputFormat

很久没有更新博客了,最近实习一直挺忙的。最近做的项目有关使用了录音类MediaRecorder。其中有个setAudioEncoder设置编解码器和setOutputFormat和输出格式。不太明白这之间有什么约束,但是总觉得不可能是随便设置的但是Google怎么都搜不到这方面相关的,于是去稍微了解了下编码解码器的区别以及它的输出容器。这里自己记录下,也方便大家有个了解。 MediaRecorder

sorgs 7353

Android音频开发之使用MediaRecorder录制

本文主要是记录Android端音频开发 Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord MediaRecorder 可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3,3gp等)并存成文件 google API : https://developer.android.com/reference/androi

I_do_can的博客 1827

安卓使用MediaRecorder(1)录制音频的详细使用

引言 使用 MediaRecorder 的步骤 常见问题及解决思路 无法访问存储卡目录 录制的音频文件没有声音 录制过程中出现异常 MediaRecorder无法正常启动 录制的音质或者画质很差 录制的文件无法播放 结语

分享Android应用和系统开发、音视频编码、性能优化相关知识 5891

Android之MediaRecorder录制音频

使用MediaRecorder录制音频 手机一般都提供麦克风硬件,而Android系统可以利用该硬件来录制音频了。 ——使用MediaRecorder录制音频的步骤:  1)创建MediaRecorder对象  2)调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入MediaRecorder.AudioSource.MIC参数指定录制来自麦克风的

重心开始,重新开始 1856

【Android笔记84】Android之使用MediaRecorder录制音频

MediaRecorder是Android提供的一个专门用于录制音频和视频的类,它能够捕获各种编码格式的音频、视频。在使用MediaRecorder录制音视频的时候,确保android系统有相应的设备,例如:麦克风、相机等设备(注意:录制视频的时候,需要调用相机设备)。注意:Android Studio模拟器上无法录制音频,所以最好通过真机测试。

✅ Java 开发工程师 683

Android MediaRecorder录制音频

今天介绍一下在Android中怎么录制音频,在Android中使用MediaRecorder来录制音频,步骤:   1、创建MediaRecorder对象。   2、调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入MediaRecorder.AudioSource.MIC参数指定录制来在麦克风的声音。   3、调用MediaRecorder对象的set

潘洪金的博客 1084

掌握Android MediaRecorder:音频和视频录制技术指南

本文还有配套的精品资源,点击获取 简介:MediaRecorder是Android中用于录制音频和视频的强大工具,提供了一系列API以简化多媒体数据捕获过程。本篇指南将详细介绍MediaRecorder的使用方法,包括初始化、配置输入输出源、选择编解码器、指定输出文件路径以及启动和停止录制的步骤。此外,还包括音频和视频录制的示例代码和重要事项提醒,帮助开发者在Android...

weixin_42430341的博客 2735

Android音频录制实战:使用MediaRecorder

在移动开发的世界里,音频录制功能是许多应用的核心需求之一。Android平台提供了MediaRecorder类,它是一个方便的API,允许开发者在应用中轻松实现音频录制。MediaRecorder类封装了复杂的音频捕获和编码过程,使得音频录制操作对开发者来说相对简单。MediaRecorder通过一系列简单的方法调用来设置音频源、格式、输出文件路径等,使得开发者可以快速上手并集成到自己的应用中。MediaRecorder类是Android平台用于录制音频和视频的强大工具。

weixin_36204513的博客 1540

用浏览器轻松录制音频、视频—— MediaRecorder API

原文链接 浏览器有个强大而且简单的API —— MediaRecorder,顾名思义,可以用来录制音频和视频。 闲话不说,先上demo —— #demo1: 录制语音 < 微信(66)哈哈哈··· 说话 按住说话 show in codepen #demo2: 录制视频 < 微信(66)哈哈哈··· 拍段视频吧 按住拍视频 show in codepen 看完demo,再来看看怎么实现吧 —— #简介 API可以说是相当简单粗暴了 #一个构造函数 M..

allway2的博客 3033

Android音频录制基础教程:MediaRecorder Demo1

在Android开发中,音频和视频的录制是一项常见的功能。MediaRecorder API提供了一种简单的方法,允许开发者快速实现录制功能。它是一个高级的API,屏蔽了底层的复杂性,允许用户通过几个简单的步骤就能开始录制音频或视频。MediaRecorder API可以处理音频源的采集、编码、输出格式的设置,以及录制过程的控制和资源管理。这使得它成为开发录音功能的首选。

weixin_35903223的博客 1307

Android音频录制—MediaRecorder

MediaRecorder (基于文件录音) 集成了录音,编码,压缩等,支持少量的音频格式文件。 优点:封装度很高,操作简单 缺点:无法实现实时处理音频,输出的音频格式少。 首先来看看 MediaRecorder 的生命周期: 从生命周期中可以看出,录制音频的基本步骤如下: MediaRecorder mMediaRecorder= new MediaRecorder(); /...

yeaper_yeo的博客 1098

springcloud教程 -- 1.快速搭建入门级demo,看这一篇就够了

废话不多讲,跟紧我,开启你的SpringCloud初体验 首先回顾微服务的基本组成: [图片 here] 生产者:提供服务 消费者:消费服务 服务注册/发现中心:服务注册,发现,监控 所以,首先明白springcloud微服务的架构基础:生产者(client),消费者(client),服务注册/发现中心(server)

叶巨岩的博客 8万+

TPS65987D USB PD控制器:从原理到实战的完整设计指南

USB PD(Power Delivery)协议是USB Type-C接口实现高功率快充和数据传输的核心技术标准。其工作原理基于CC(Configuration Channel)引脚的双相标记编码(BMC)通信,通过协商电压和电流,实现高达100W的功率传输。这项技术的核心价值在于统一了充电标准,简化了设备间的互操作性,广泛应用于笔记本电脑、移动电源、扩展坞等设备。TPS65987D作为一款高度集成的USB PD控制器,将复杂的协议处理、电源路径管理和多重保护电路集成于单芯片,显著降低了设计复杂度。通过其可

weixin_30983965的博客 338

Android MediaRecorder录制播放音频

1、请求录制音频权限 <user-permission android:name="android.permission.RECORD_AUDIO"/> RECORD_AUDIO 权限从6.0后需要进行用户授权,通过ActivityCompat.requestPermissions(); 2、创建运行MediaRecorder 2.1 设置音频源setAudi...

weixin_30908649的博客 193

一文看懂 SAP Integration Suite:从架构治理、接口编排到事件驱动的集成全景

SAP Integration Suite是企业数字化转型中的关键集成平台,通过统一的方法论和工具链解决系统互联、数据对齐和流程协同等复杂问题。其核心能力包括:1)集成评估(Integration Assessment)提供战略规划框架;2)迁移评估(Migration Assessment)支持从传统平台向云的平滑过渡;3)云集成(Cloud Integration)实现日常业务流程编排;4)集成顾问(Integration Advisor)简化B2B标准映射;5)贸易伙伴管理(TPM)优化外部协作流程;

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 501

Android音视频开发:MediaRecorder录制音频

MediaRecorder录制音频

m0_60259116的博客 1052

华为OD机试双机位C卷 - 比赛 / 评委评分 (C++ & Python & JAVA & JS & GO)

华为OD机试双机位C卷 比赛,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-比赛,华为OD机考-比赛。

qq_45776114的博客 1701

InfiniBand 与 RoCE 协议介绍

InfiniBand 是高性能互联的 “标杆”,以极致的低延迟、高可靠性适用于对性能要求苛刻的场景(如超算、大规模 AI 训练);而 RoCE 通过以太网实现 RDMA,平衡了性能与成本,成为数据中心和云计算的主流选择。两者均基于 RDMA 技术,核心目标是解决传统网络的 “CPU 瓶颈” 和 “延迟瓶颈”,推动高性能计算和分布式系统的发展。

jundao1997的专栏 713

使用MediaRecorder录制音频

使用MediaRecorder录制音频步骤如下: 1.创建MediaRecorder对象 2.调用MediaRecorder对象setAudioSourse(MediaRecorder.AudioSource.MIC)方法设置声音来源 3.调用MediaRecorder对象setOutputFormat()方法设置输出音频格式 4.调用MediaRecorder对象setAudioEnco

jzq950522的博客 719

【ComfyUI专栏】ComfyUI 数字人方案-ComfyUI-EchoMimic

EchoMimic是一个基于图片和语音的数字人生成方案,通过ComfyUI节点实现。该方案安装简单,需下载特定模型文件(Unet、AudioProcessor和VAE)并保存本地。相比其他数字人生成方案,其节点操作更简便,支持多种Pose姿态选择,并能结合视频内容进行姿态同步,通过音频同步口型实现动态内容创建。生成的数字人效果直观,适用于快速创建个性化数字形象。

技术与管理的平衡木- 464
上一篇: Android音视频开发-音频篇-音频的原理
下一篇: android AudioRecord 录制音频
CodeForFreeX
博客等级 码龄12年 43粉丝 25原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值