【问题标题】:Android libraray for generatring Waveforms from audio file [closed]用于从音频文件生成波形的 Android 库 [关闭]
【发布时间】:2013-03-30 13:21:35
【问题描述】:

我目前正在开发一个 Android 应用程序,需要能够呈现音频文件的波形。我已经阅读了 Visualizer 类,但我认为该类旨在进行实时计算。我想要做的是通过一个音频文件并生成例如一个包含整个音频文件波形的 .PNG。

基本上像 soundcloud 这样的东西: http://www.djban.com.br/wp-content/uploads/soundcloud-waveform.png

有没有图书馆可以做到这一点?或者您能告诉我如何获取音频文件的振幅数组吗?

【问题讨论】:

  • 嘿@heisenbug,如果你设法让它工作,请显示一些指针。

标签: android waveform audio


【解决方案1】:

我不知道任何库,但应该很容易让它工作。

首先,为了获得波形的振幅,您需要PCM 格式的音频。 假设您需要任意音频文件(尤其是 mp3)的波形,您将需要找到一种在格式之间进行转换的方法。快速谷歌搜索给出this result。 注意:如果您只需要对来自麦克风的音频执行此操作,则可以避免转换,因为它以 PCM 格式提供音频数据。

获得样本后,您需要以某种方式绘制它们的振幅。你有几个选择,但我会试试Canvas。您可以在那里画线(或一般形状),然后export it to a file 或在屏幕上画。

另一个绘图选项是 OpenGL。如果您以前没有使用过它,这会更复杂,但它可能会更快。

【讨论】:

  • 感谢您的快速回答,但您能解释一下为什么我需要将文件转换为 PCM 格式吗?有什么好处?我不能只获取android可以打开的任何其他格式的样本吗?绘图过程不是问题,我熟悉Android。这就是我如何读取音频文件的样本以及如何获得这些样本的幅度。感谢您抽出宝贵时间回复!
  • mp3 文件中没有振幅信息(至少是直接的)。这就是为什么您需要将其转换为 PCM 或类似格式(例如未压缩的 WAV)。 Android 的 MediaPlayer 可以播放 mp3 文件,但它不会为您提供幅度信息。我没有尝试过,但在关于 mp3plugin 的帖子中似乎很容易。你不需要保存转换后的文件,只需在缓冲区玩一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2017-07-08
  • 2012-11-16
  • 1970-01-01
  • 2018-11-27
相关资源
最近更新 更多