1

我以前使用的是just_audio,我正在像这样使用当前时间

player.positionStream.listen((event) {
  playerTimeNow = event;
  updatePlayerBar();
});

现在我需要知道如何在这个assets_audio_player中获得时间

4

3 回答 3

5

我从您的问题中了解到的是您想要音频的当前播放位置并想要更新您的播放器栏。为此,您可以使用返回currentPosition的属性。Yon 可以在中使用或使用它。AssetAudioPlayerValueStreamlistencurrentPosition StreamStreamBuilder

简单listencurrentPosition流:

 assetsAudioPlayer.currentPosition.listen((positionValue){
   playerTimeNow = positionValue;
  updatePlayerBar();
 });

或者您也可以使用StreamBuilder

return StreamBuilder(
    stream: assetsAudioPlayer.currentPosition,
    builder: (context, asyncSnapshot) {
        final Duration duration = asyncSnapshot.data;
        return Text(duration.toString());  
    }),

Widget将要提供当前音频位置的包装在其中StreamBuilder并使用从 接收的值asyncSnapshot.data

对于自定义通知:

用于Audio自定义通知:

final audio = Audio("/assets/audio/country.mp3", 
    metas: Metas(
            title:  "Country",
            artist: "Florent Champigny",
            album: "CountryAlbum",
            image: MetasImage.asset("assets/images/country.jpg"), //can be MetasImage.network
          ),
   ); 

并将其传递给assetsAudioPlayer.open(audio, showNotification: true);

于 2021-02-16T06:08:47.393 回答
1

改为在 pub dev 上使用Assets Audio Player包。

它提供通知控件而无需任何额外的实现。

在此处输入图像描述

另一个插件是Audio Player

于 2021-02-13T17:19:42.027 回答
-1

我建议你看看这篇文章:https ://itnext.io/create-an-awesome-background-running-music-player-like-amazon-music-in-flutter-341a59efa936

它有一个关于如何组合这两个包的例子。

于 2021-02-13T17:07:21.283 回答