Android Flutter分析音频波形

时间:2018-08-17 11:11:35

标签: android audio flutter

我想创建一个音乐应用,其视图类似于SoundCloud的视图,这一点要清楚:This

我想为每个栏创建一个这样的类:

class Bar {
  const Bar(this.alreadyPlayed, this.index, this.height);

  final bool alreadyPlayed;
  final int index;
  final double height;
}

已经播放的是一个布尔值,指示条形应该是彩色还是灰色,索引是条形的数量和高度,好是条形的高度。前两个变量应该不难获取,我的问题是获取条形的高度,因此要了解当时的音乐强度。这已经足够了,但是如果有人知道如何计算特定频率(例如225 Hz)的强度,那就更好了。

但是无论如何,如果有帮助,我会添加我想用伪代码实现的目标:

// Obtain the mp3 file.
//
// Define a number of bars decided from the song length 
// or from a default, for example, 80.
//
// In a loop that goes from 0 to the number of bars create 
// a Bar Object with the default alreadyPlayed as 0, index 
// as the index and the height as a 0.
// 
// Obtain the intensity of the sound in a way like this: 
// sound[time_in_milliseconds = song_lenght_in_milliseconds / num_of_bars ],
// and then set the height of the bar as the just found intensity.

我要问的可能吗?

2 个答案:

答案 0 :(得分:1)

看起来您正在寻找从音频生成波形图的方法。到目前为止,您有尝试过什么吗?

虽然这里没有简短的答案。您可以从flutter_ffmpeggenerate waveform data from audio开始探索。由您决定波形数据使用哪种格式。一旦获得数据,就可以使用CustomPaint在Flutter中生成波形图。您可以在此blog post上查看示例。样本中使用的波形数据为JSON。

答案 1 :(得分:0)

我正在寻找一种聆听麦克风并使用颤振进行音频分析的方法,我在这里找到了一些可能对您有所帮助的方法:

是两篇文章的序列,逐步解释如何使用 Flutter 绘制波形

生成波形数据 - 音频表示: https://matt.aimonetti.net/posts/2019-06-generating-waveform-data-audio-representation/

在 Flutter 中绘制波形:https://matt.aimonetti.net/posts/2019-07-drawing-waveforms-in-flutter/

希望对你有帮助