颤动如何在assets_audio_player中获取当前持续时间

问题描述

我以前使用 just_audio 并且我正在这样使用当前时间

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

现在我需要知道如何才能在这assets_audio_player

解决方法

在 pub dev 上改用 Assets Audio Player 包。

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

enter image description here

另一种插件是 Audio Player

,

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

只需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);

,

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

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