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

Android中使用LAME库生成MP3文件

前言 Android中内置的MediaCodeC提供了很多音视频编解码器,但由于MP3是有版权的,所以原生MediaCodeC只提供了MP3的解码能力,对于MP3的编码就需要借助外部库了。...LAME库由开源社区开发,当前是公认有损质量MP3中压缩效果最好的编码器。本文的主要工作为将LAME源码编译为so库,并在Android中使用。...LAME源码 LAME源码下载:LAME目前最新版本为3.100,http://lame.sourceforge.net/ 新建Android项目,并在创建时勾选Include C++ support,...libmp3lame LAME_SRC_DIR) add_library(lame-lib SHARED lame-lib.cpp ${LAME_SRC_DIR}) 3....编译项目,可在屏幕上看到lame的版本号 使用LAME生成MP3lame-lib.cpp中添加以下代码,lame初始化时采样率等参数的要求可在lame源码中看到。

3.7K180
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发笔记(一百八十九)利用LAME录制MP3音频

若想让录音文件放之四海而皆能播放,就得事先将其转为通用的MP3格式,虽然Android官方的开发包不支持MP3转换,不过借助第三方的LAME库,能够将原始音频转存为MP3文件。...LAME是一个高质量的MP3编码器,它采用C/C++代码开发,需要通过JNI技术引入到App工程。...MP3的转换过程又有两种形式,一种是把PCM文件转成MP3文件,另一种是在录音时将原始数据直接转存为MP3文件,也就是边录边转。...具体而言,则需构建录音线程,在其构造方法中初始化LAME;然后开启录音线程,同时启动MP3转码线程,录音线程由AudioRecord获得原始音频数据,马上转交给MP3转码线程处理;录音结束时,也给MP3...(); // 启动MP3录制线程 运行测试App,观察到MP3录音效果如下面两图所示,其中第一张图为MP3录音完成时的截图,第二张图为正在播放MP3时的截图。

1.4K10

Android录音mp3格式实例详解

如何最终生成MP3 实现MP3格式最好是借助Lame这个成熟的解决方案。 对于Android来说,需要借助JNI来调用Lame的C语言代码,实现音频格式的转化。 2....那么问题来了,如果我们读取完数据后接着将数据传给Lame进行MP3编码,Lame的编码时间是不确定的,是不是有可能造成数据的丢失呢? 答案当然是有可能,所以我们不能巧合编程。...MP3 file will be encoded with bit rate 32kbps */ private static final int DEFAULT_LAME_MP3_BIT_RATE...这个size同样需要传入到Lame编码器中用于编码。 mp3的buffer:官方规定了计算公式:7200 + (1.25 * buffer_l.length)。...(可以在lame.h文件中看到) flush 将MP3结尾信息写入buffer中。 传入参数:mp3buf至少7200字节。这里还是用以前定义的mp3buf来传入,避免创建过多的数组。

2.1K20

Android录制mp3格式文件

前言 最近做一个即时通信类的项目,由于要保证pc端,iOS端和Android端的通用性,最终统一为MP3格式,一直担心MP3格式会不会很大,但是实测还是可以接受的。...下面来看看具体步骤: 工具 MP3格式是用一个开源项目转的,MP3lame,由于该项目用到了jni,所以需要大家配置好ndk环境,环境配置在此就不多说了,大家可以自行百度,最新的应该很好配置。...android.media.MediaRecorder; import android.os.Handler; /** * <b 类功能描述:</b <div style="margin-left:40px;margin-top:-10px" * MP3...inSamplerate, int outChannel, int outSamplerate, int outBitrate, int quality); /** * 音频数据编码(PCM左进,PCM右进,MP3...总结 之前一直用MediaRecorder录音,发现录出来的只能是amr、acc等格式,用lameMP3感觉是不可行的。

83740

【FFmpeg】在 Mac OS 中编译 FFmpeg 源码 ① ( homebrew 安装 | 通过 gitee 源安装 homebrew | 安装 FFmpeg 编译所需的软件包 )

homebrew 是 Mac OS 中 开发必备的 软件包管理工具 , 其 简化了 Mac 中的软件管理流程 , 提升了 Mac OS 系统的 工作效率 和 软件使用体验 ; 除了 Mac OS 平台之外 , Linux...系统中也可以使用 homebrew , 不过在 Linux 上该软件包管理工具不是主流 ; Linux 中的软件包管理工具 : CentOS 中使用 yum , RedHat 中使用 rpm , Debian...分布式版本控制工具 ; libtool : 用于 创建 / 修改 / 管理 动态链接库 , 可以自动化库的 编译 和 安装过程 , 并处理库的依赖关系 ; fdk-aac : AAC音频编解码器 ; lame...: MP3 编码器 , 将 PCM 音频数据 转码为 MP3 格式 ; libpng : 处理 PNG 图像文件的开源库,可 读取和写入 PNG 图像 ; libass : 字幕渲染库 , 支持多种字幕格式...如果出错不好排查是哪个软件包安装出错 , 这里建议进行分批安装 , 依次执行如下命令即可 : brew install automake git libtool brew install fdk-aac lame

10810
领券