-1

你好我是新来的颤振

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

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

如果可能的话,可以展示一个关于如何创建如下图的示例

我想创建一个这样的音频播放器在此处输入图像描述

请帮助...

提前致谢!!!

4

1 回答 1

3

显示如何在屏幕截图中执行所有操作的答案可能不适合 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 包含一个看起来像这样的示例,并且由于与您自己提出的布局有很多相似之处,您可以通过查看其代码获得一些想法:

在此处输入图像描述

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

于 2021-03-13T10:32:19.490 回答