Flutter 如何在 assets_audio_player 中获取当前持续时间
Flutter how to get current duration time in assets_audio_player
我之前使用的是just_audio,现在我是这样使用的
player.positionStream.listen((event) {
playerTimeNow = event;
updatePlayerBar();
});
现在我需要知道如何在这个assets_audio_player
中获得时间
它有一个关于如何组合这两个包的示例。
改为在 pub dev 上使用 Assets Audio Player 包。
它提供了通知控件,无需任何额外的实现。
另一个插件是 Audio Player。
我从你的问题中了解到,你想要音频的当前播放位置并且想要更新你的播放器栏。为此,您可以使用 currentPosition
属性 of AssetAudioPlayer
which returns ValueStream
。您可以 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());
}),
将您要在 StreamBuilder
中提供当前音频位置的 Widget
包裹起来,并使用从 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);
我之前使用的是just_audio,现在我是这样使用的
player.positionStream.listen((event) {
playerTimeNow = event;
updatePlayerBar();
});
现在我需要知道如何在这个assets_audio_player
中获得时间它有一个关于如何组合这两个包的示例。
改为在 pub dev 上使用 Assets Audio Player 包。
它提供了通知控件,无需任何额外的实现。
另一个插件是 Audio Player。
我从你的问题中了解到,你想要音频的当前播放位置并且想要更新你的播放器栏。为此,您可以使用 currentPosition
属性 of AssetAudioPlayer
which returns ValueStream
。您可以 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());
}),
将您要在 StreamBuilder
中提供当前音频位置的 Widget
包裹起来,并使用从 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);