返回顶部
首页 > 资讯 > 移动开发 >Android 如何采用Lame编码器编码mp3文件
  • 789
分享到

Android 如何采用Lame编码器编码mp3文件

2024-04-02 19:04:59 789人浏览 独家记忆
摘要

这篇文章会基于下面3个问题来展开讲解。          1、什么是Lame?        

这篇文章会基于下面3个问题来展开讲解。

         1、什么是Lame?

         2、为什么采用Lame?

         3、Lame在Android应用上如何使用?

一、什么是Lame

 我们看下Lame官网(lame.sourceforge.io/index.PHP)给的描述

   LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.

 翻译成中文就是:LAME是一个高质量的MPEG音频层III (MP3)编码器,在LGPL下授权。

  好了,现在我们知道Lame就是个开源的编码器,而且是专门用来编码mp3文件的。

二、为什么要采用Lame

 在Android上开发过录音功能的同学应该知道,在Android上要实现录音功能,有2种方式。一种是采用AudioRecord的方式,AudioRecord录制的直接是原始的pcm数据,另一种方式就是采用MediaRecord,可以录制类似amr、aac格式的文件。

 这里贴下MediaRecord目前支持的录音格式,可以看到目前是不支持mp3的。那这时我们想要编码mp3的文件,就得借助lame来实现了。


  public final class AudioEncoder {
   
    private AudioEncoder() {}
    public static final int DEFAULT = 0;
    
    public static final int AMR_NB = 1;
    
    public static final int AMR_WB = 2;
    
    public static final int AAC = 3;
    
    public static final int HE_AAC = 4;
    
    public static final int AAC_ELD = 5;
    
    public static final int VORBIS = 6;
    
    public static final int EVRC = 10;
    
    public static final int QCELP = 11;
    
    public static final int LPCM = 12;
  }

三、Lame在Android应用上如何使用

 在android上集成开源的代码,很多时候套路都差不多,就是下载源码,编译出相关的so库,然后就是调用这些库提供的方法了,当然,调用so库里面的方法,应用上需要借助jni来实现。

 这里就不介绍如何下载lame源码和编码so库了。编译lame源码后,我们会得到一个libmp3lame.so 的库文件,调用这个so库里面的方法,还需要我们去实现JNI部分的代码。

 整体的思路就是,应用层通过调用JNI提供的native方法,然后调用到 libmp3lame.so 库里面的方法,实现编码mp3文件。

 这里给出的一个例子是将pcm格式的文件编码mp3格式的文件。

 代码git地址:GitHub.com/yorkZJC/And…  代码逻辑这里简单讲下:

  LameEncodeJniNative.java 是本地封装的native方法,为应用层提供了2个方法,一个是编码,一个是结束。这2个方法对应c++层具体的实现,可以看工程 cpp/目录下文件的实现,cpp文件里面的实现也比较简单。

应用代码调用的时候,就是传入对应的pcm源文件和需要生成的mp3文件路径,还有pcm源文件的格式信息(采用率、通道数、编码数据位数)。


  File pcmFile = new File(getExternalFilesDir(null), "input.pcm");
  File mp3File = new File(getExternalFilesDir(null), "output.mp3");
  mLameEncoder = new LameEncodeJniNative();
  mLameEncoder.encode(pcmFile.getAbsolutePath(), mp3File.getAbsolutePath(), 44100, 2, 128);

以上就是Android 如何采用Lame编码器编码mp3文件的详细内容,更多关于Android 编码mp3文件的资料请关注编程网其它相关文章!

--结束END--

本文标题: Android 如何采用Lame编码器编码mp3文件

本文链接: https://lsjlt.com/news/121650.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android 如何采用Lame编码器编码mp3文件
    这篇文章会基于下面3个问题来展开讲解。          1、什么是Lame?        ...
    99+
    2024-04-02
  • Android 怎么用Lame编码器编码mp3文件
    这篇文章主要介绍“Android 怎么用Lame编码器编码mp3文件”,在日常操作中,相信很多人在Android 怎么用Lame编码器编码mp3文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android...
    99+
    2023-06-14
  • 如何使用FileReader采用的默认编码
    小编给大家分享一下如何使用FileReader采用的默认编码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!FileReader采用的默认编码很久以前听教学视频,里面讲到Java采用的默认编码是ISO-8859-1,一直记着...
    99+
    2023-06-22
  • Linux下文件编码如何转换
    这篇文章主要介绍了Linux下文件编码如何转换的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下文件编码如何转换文章都会有所收获,下面我们一起来看看吧。这是由于Windows中默认的文件格式是GBK(g...
    99+
    2023-06-27
  • linux如何查看文件的编码
    可以使用以下命令来查看文件的编码: 使用file命令: file -i filename 该命令会输出文件的编码信息。 使用...
    99+
    2024-04-02
  • CentOS如何设置文件字符编码
    这篇文章主要为大家展示了“CentOS如何设置文件字符编码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS如何设置文件字符编码”这篇文章吧。字符编码(英语:Character enco...
    99+
    2023-06-10
  • Linux系统如何查看文件编码
    这篇“Linux系统如何查看文件编码”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统如何查看文件编码”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们...
    99+
    2023-06-28
  • php如何查询文件编码格式
    在PHP开发中,我们常常遇到需要查询文件编码格式的需求。这时,我们可以使用PHP内置的函数来实现。下面,我们就来具体介绍PHP中如何查询文件编码格式。fopen函数示例代码:$file = fopen('filename.txt&#...
    99+
    2023-05-14
  • 如何使用java反编译字节码文件
    本篇文章给大家分享的是有关如何使用java反编译字节码文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、We...
    99+
    2023-06-14
  • Android 源码如何编译调试
     android提供的工具链和开发工具比较完善,因此它的开发环境的搭建比较简单,相信许多朋友都已经搭建好环境,并编写了HelloActivity入门程序了。这里先看几...
    99+
    2022-06-06
    调试 源码 Android
  • 如何修改csv文件的编码形式
    不同的软件版本更改csv文件编码的位置不同,以下提供一种最简单的更改csv文件编码方法: csv文件右键打开方式,选择记事本,右下角即为当前的编码形式  以图所示:当前的编码形式为utf-8  2.更改编码形式 文件另存为,既可以在编码位...
    99+
    2023-09-13
    python 开发语言
  • java写入文件时如何设置编码
    Java写入文件时可以使用OutputStreamWriter类来设置编码。具体方法如下:1. 创建一个FileOutputStre...
    99+
    2023-05-21
    java写入文件 java
  • java如何判断一个文件的编码
    在Java中,可以使用以下方法判断一个文件的编码:1. 使用`java.nio.charset.Charset`类的`forName...
    99+
    2023-08-19
    java
  • centos如何查看文件的编码格式
    在CentOS中,可以使用以下命令查看文件的编码格式: 1、使用file命令: file filename 其中,filename是...
    99+
    2024-04-02
  • Linux 下如何将使用各种字符编码的文件转化为UTF-8编码
    Linux 下如何将使用各种字符编码的文件转化为UTF-8编码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们将一起看一看如何在 Linux 下将使用...
    99+
    2023-06-05
  • 如何使用Python批量对文本文件编码互转
    本文小编为大家详细介绍“如何使用Python批量对文本文件编码互转”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用Python批量对文本文件编码互转”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在Wind...
    99+
    2023-07-05
  • php中文如何转unicode编码
    这篇文章主要介绍了php中文如何转unicode编码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php中文转unicode编码的方法:首先创建一个PHP示例文件;然后通过“...
    99+
    2023-06-09
  • python读取文件编码错误如何解决
    要解决Python读取文件编码错误,可以按照以下步骤进行操作: 确定文件编码格式:使用文本编辑器(如Notepad++)打开文件...
    99+
    2023-10-20
    python
  • linux如何查看文件的字符集编码
    要查看文件的字符集编码,可以使用以下命令:1. file命令:使用file命令可以查看文件的类型和字符集编码。例如,要查看file....
    99+
    2023-10-18
    linux
  • 如何使用python批量修改文本文件编码格式
    使用python批量修改文本文件编码格式 把文本文件的编码格式进行批量幻化,比如ascii, gb2312, utf8等,相互转化,字符集的大小来看,utf8>gb2312&g...
    99+
    2023-03-24
    python批量修改文本文件编码格式 python批量修改文件编码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作