首页 > 解决方案 > Flutter Audio Recorder Plugin 将 M4A 录制为 WAV 文件

问题描述

当尝试使用 FFMPEG 提取一段音频时,我发现我认为由 Flutter Audio Recorder 录制的 .M4A 文件实际上被录制为 WAV 文件。这是 FFMPEG 报告的内容;

  Guessed Channel Layout for Input Stream #0.0 : mono
  Input #0, wav, from 'myaudio.m4a':
  Duration: 00:00:04.02, bitrate: 705 kb/s
  Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s 

我猜这是因为我将 Flutter Audio Recorder 中的采样率从默认的 16K 提高到了 44K 以达到更高的质量。

  _recorder = FlutterAudioRecorder(customPath, audioFormat: AudioFormat.AAC, sampleRate: 44100);

那么 44K 提升是否意味着我失去了 AAC 压缩和更小的文件大小的好处?

这是 Flutter Audio Recorder 录制的 M4A 文件示例;

https://speaktestbucket.s3.us-east-2.amazonaws.com/63-talk-87.m4a

这是我正在使用的实际 Flutter Audio Recorder 插件;

https://github.com/meghead/flutter_audio_recorder2

这是一个叉子;

https://github.com/hanyska/flutter_audio_recorder2

它本身就是原始 Flutter Audio Recorder 的一个分支;

https://github.com/rmbrone/flutter_audio_recorder

标签: flutteraudiocodecaacm4a

解决方案


看起来有一个 rmbones 的 Flutter_Audio_Recorder 的分支,它记录了一个正确编码的 M4A 文件。

https://github.com/hnvn/flutter_audio_recorder

一些依赖项已经过时了,所以我最终用更新的 pubspec.yaml 分叉了 hnvn 的分叉;

https://github.com/meghead/flutter_audio_recorder

生成的短文件是令人印象深刻的 8.2k 大小。

https://speaktestbucket.s3.us-east-2.amazonaws.com/290-628.m4a


推荐阅读