AudioRecorder实时录制mp3格式音频

本文介绍了Android环境下使用lame框架通过JNI技术实时录制mp3音频的过程。首先,文章讲解了riff/wav/pcm/raw/aac/mp3等音频格式的区别,以及MediaRecorder与audioRecord的区别。接着,详细说明了如何引入和使用lame库的So文件,并提供了在Android Studio中引入so文件的两种方法。最后,给出了录音工具类的代码结构,但源码解析部分未展开,整体项目涉及jni、AudioRecord等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在讲述正文以前首先介绍有关音频的一些知识。
1、riff/wav/pcm/raw/aac/mp3
        riff其实就是一种文件描述的格式;pcm就是媒体文件数据的元数据,直接记录声音的内容;wav文件就采用了riff的描述,前面44字节就是riff描述内容,wav=riff+pcm;raw=pcm;mp3是一种音频的压缩编码,就是将pcm通过算法进行压缩;aac也是一种高级音频编码,相对于mp3,aac格式的音频更佳,文件更小,不足之处在于它属于有损压缩的格式。
2、MediaRecorder/audioRecord区别
        MediaRecorder是系统提供常用的录音类,该类可以实现音频录制生成文件;audioRecord也是系统提供的录音类,但是它可以直接捕获音频流,开发者可以实时随意处理其内容,常见场景比如语音聊天/tom猫/k歌。

        介绍完基础知识,下面进入正文,如何实时录制mp3音频,现如今转化音频为MP3的框架使用的最多的是lame框架(利用C语言是实现的),在Android和IOS中均可使用。
        我们使用的是lame框架进行mp3的格式转换,由于它是C语言编写的,无法在Android中直接使用,我们必须使用Jni的方法来调用lame,在这里就不介绍Jni的使用方法了,使用Jni的方法我们主要是为了得到一个So文件,得到So文件以后,我们load至系统中就可以调用对应的方法,这里我使用的一个现成的so文件来进行lame框架中格式转化的方法,下面进入详细的代码。

一、引入So文件

        使用

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值