问题描述
我以前使用 just_audio 并且我正在这样使用当前时间
player.positionStream.listen((event) {
playerTimeNow = event;
updatePlayerBar();
});
现在我需要知道如何才能在这个assets_audio_player
解决方法
在 pub dev 上改用 Assets Audio Player 包。
它提供通知控件,无需任何额外的实现。
另一种插件是 Audio Player。
,我从您的问题中了解到您想要音频的当前播放位置并想要更新您的播放器栏。为此,您可以使用返回 currentPosition
的 AssetAudioPlayer
的 ValueStream
属性。 Yon 可以 listen
到 currentPosition
Stream
或在 StreamBuilder
中使用它。
只需listen
到currentPosition
流:
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);
它有一个关于如何组合两个包的例子。