Flutter如何获取assets_audio_player中当前的持续时间

Uma*_*han 1 audio-player dart flutter flutter-dependencies just-audio

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

player.positionStream.listen((event) {
  playerTimeNow = event;
  updatePlayerBar();
});
Run Code Online (Sandbox Code Playgroud)

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

Shu*_*oni 7

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

简单地listencurrentPosition流:

 assetsAudioPlayer.currentPosition.listen((positionValue){
   playerTimeNow = positionValue;
  updatePlayerBar();
 });
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用StreamBuilder

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

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
          ),
   ); 
Run Code Online (Sandbox Code Playgroud)

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