Flutter - 音频播放器

时间:2021-03-13 06:50:25

标签: flutter dart just-audio

你好,我是 Flutter 新手

我正在尝试从 url 或网络播放音频文件,但使用哪个是因为

我在谷歌上搜索,它显示了很多但该使用哪一个。

如果可能,可以展示如何创建如下图的示例

我想创建一个这样的音频播放器enter image description here

请帮助...

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

显示如何在屏幕截图中执行所有操作的答案可能不适合 StackOverflow 答案(音频代码、UI 代码以及如何提取音频波数据),但我会给您一些希望有用的提示。

使用 just_audio 插件,您可以从这些类型的 URL 加载音频:

  • https://example.com/track.mp3(任何网址)
  • file:///path/to/file.mp3(具有权限的任何文件 URL)
  • asset:///path/to/asset.mp3(任何 Flutter 资产)

您可能需要一个播放列表,以下是定义一个播放列表的方法:

final playlist = ConcatenatingAudioSource(children: [
  AudioSource.uri(Uri.parse('https://example.com/track1.mp3')),
  AudioSource.uri(Uri.parse('https://example.com/track2.mp3')),
  AudioSource.uri(Uri.parse('https://example.com/track3.mp3')),
  AudioSource.uri(Uri.parse('https://example.com/track4.mp3')),
  AudioSource.uri(Uri.parse('https://example.com/track5.mp3')),
]);

现在开始播放,您需要创建一个播放器:

final player = AudioPlayer();

设置播放列表:

await player.setAudioSource(playlist);

然后当用户点击事物时,您可以执行以下操作:

player.play();
player.pause();
player.seekToNext();
player.seekToPrevious();
player.seek(Duration(milliseconds: 48512), index: 3);
player.dispose(); // to release resources once finished

对于屏幕布局,请注意 just_audio 包含一个看起来像这样的示例,并且由于与您自己提议的布局有很多相似之处,您可以通过查看 its code 获得一些想法:

enter image description here

最后,对于声波显示,还有一个叫audio_wave的包。您可以使用它来显示音频波形,但问题是我所知道的没有插件可以让您访问波形数据。如果你真的想要一个波形,你可能会使用一个假波形(如果它只是为了直观地指示位置进度),否则你或其他人需要编写一个插件来将音频文件解码为样本列表。