问题描述
你好,我是 Flutter 新手
如果可能,可以展示如何创建如下图的示例
我想创建一个这样的音频播放器
请帮助...
提前致谢!!!
解决方法
显示如何在屏幕截图中执行所有操作的答案可能不适合 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 获得一些想法:
最后,对于声波显示,还有一个叫audio_wave的包。您可以使用它来显示音频波形,但问题是我所知道的没有插件可以让您访问波形数据。如果你真的想要一个波形,你可能会使用一个假波形(如果它只是为了直观地指示位置进度),否则你或其他人需要编写一个插件来将音频文件解码为样本列表。>