Android录制语音文件wav转mp3的方法示例

所属分类: 软件编程 / Android 阅读数: 69
收藏 0 赞 0 分享

1.Android 使用AudioRecord而实现录音暂停以及wav文件转mp3文件。因为android系统开源的原因,导致许多生产厂商乱改系统源码,此处小米最为恶心,使用android原生的AudioRecord录制只能保存wav和pcm格式的语音文件,但是小米手机录制的wav语音文件系统本身不支持,所以使用MediaPlayer不能播放wav格式的文件,其它手机可以。此时有一万匹草泥马从旁边疾驰而过。。。

2.针对这个问题解决方案目前有两种:

方案1: 将录制完的wav文件转化成mp3格式的,缺点:转码过程不能需要花费一部分时间,不能实时录制保存mp3格式的文件

此处可以借助gitHub上的第三方库来实现wav转mp3

gitHub地址: https://github.com/adrielcafe/AndroidAudioConverter

2.1初始化:

public class App extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    AndroidAudioConverter.load(this, new ILoadCallback() {
      @Override
      public void onSuccess() {
        // Great!
      }
      @Override
      public void onFailure(Exception error) {
        // FFmpeg is not supported by device
      }
    });
  }
}

2.2调用出调用,可以在录音完成的时候调用进行转码 转码过程需要一定的时候差不多1s能转化1M,10M的wav文件差不多花费10s时间转成mp3,转成mp3后文件缩小了10几倍

File flacFile = new File(Environment.getExternalStorageDirectory(), "my_audio.flac");
IConvertCallback callback = new IConvertCallback() {
  @Override
  public void onSuccess(File convertedFile) {
    // So fast? Love it!
  }
  @Override
  public void onFailure(Exception error) {
    // Oops! Something went wrong
  }
};
AndroidAudioConverter.with(this)
  // Your current audio file
  .setFile(flacFile) 
  
  // Your desired audio format 
  .setFormat(AudioFormat.MP3)
  
  // An callback to know when conversion is finished
  .setCallback(callback)
  
  // Start conversion
  .convert();

2.3 gradle中的配置如下:

repositories {
 maven {
  url "https://jitpack.io"
 }
}

dependencies {
 compile 'com.github.adrielcafe:AndroidAudioConverter:0.0.8'
}

方案2:

格式的Recorder 通过 AudioRecord 或 MediaRecorder 录制的时候 直接录制成MP3 或 AAC 音频文件。

因 Android 默认不支持MP3编码,网上很多解决方案 比较成熟的方案就是使用Lame库,通过 Lame 编码生成 MP3 音频文件。

此处提供一个gitHub的库: https://github.com/lijunzz/Recorder-Android 这个比较新,而且还适配了as3.1,就是star数少了点,勉强可以用吧

之后遇到问题继续优化总结。。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android框架学习之Volley和Glide详解

这篇文章主要给大家介绍了关于Android框架学习之Volley和Glide的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android中Fragment的基本用法示例总结

Fragment是activity的界面中的一部分或一种行为,下面这篇文章主要给大家介绍了关于Android中Fragment的基本用法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
收藏 0 赞 0 分享

Android.mk引入第三方jar包和so库文件的方法

这篇文章主要介绍了Android.mk引入第三方jar包和so库文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android仿微信录制小视频

这篇文章主要为大家详细介绍了Android仿微信录制小视频,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

android实现一键锁屏和一键卸载的方法实例

这篇文章主要给大家介绍了关于android如何实现一键锁屏和一键卸载的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
收藏 0 赞 0 分享

Android手势密码--设置和校验功能的实现代码

这篇文章主要介绍了Android手势密码--设置和校验功能的实现代码,非常不错,具有一定的参考校验价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Kotlin学习笔记之const val与val

这篇文章主要给大家介绍了关于Kotlin学习笔记之const val与val的相关资料,并给大家介绍了const val和val区别以及Kotlin中var和val的区别,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android实现调用系统分享功能示例的总结

这篇文章主要介绍了通过Android调用系统分享文本信息、单张图片、多个文件和指定分享到微信、QQ,同时分享图片和文字的功能示例,小编觉得挺不错,一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android自定义view实现输入控件

这篇文章主要为大家详细介绍了Android自定义view实现输入控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android使用Intent.ACTION_SEND分享图片和文字内容的示例代码

这篇文章主要介绍了Android使用Intent.ACTION_SEND分享图片和文字内容的示例代码的实例代码,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多