【问题标题】:Flutter how to get current duration time in assets_audio_playerFlutter 如何在 assets_audio_player 中获取当前持续时间
【发布时间】:2021-05-16 23:37:14
【问题描述】:

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

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

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

【问题讨论】:

  • 您是说audio_service吗?它附带了一个完整的 just_audio 示例,可以下载并运行,这可能会有所帮助。如果您的应用与该示例有不同的要求,也许您可​​以在您的问题中更详细地说明该示例的不足之处,我会尝试写一个答案。

标签: flutter dart flutter-dependencies audio-player just-audio


【解决方案1】:

我从您的问题中了解到的是您想要音频的当前播放位置并想要更新您的播放器栏。为此,您可以使用AssetAudioPlayercurrentPosition 属性,它返回ValueStream。你可以listencurrentPosition 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);

【讨论】:

  • 感谢 shubam 它的工作。你能再告诉我一件事我如何在这个插件播放器的通知栏中添加图像?再次感谢
  • 编辑了我的答案。 @UmaizKhan 赏金呢?
  • 是的,它现在是你的,它还有 6 小时的时间来提供赏金
【解决方案2】:

在 pub dev 上使用 Assets Audio Player 包。

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

另一个插件是Audio Player

【讨论】:

  • 意味着只需要添加插件而不是代码中的任何实现?
  • 是的,只需使用这个插件,并在您玩游戏时传递布尔字段来创建通知。
  • 但我只使用音频,所以当播放器打开并运行它时,它显然会发出 2 种声音?是不是播放器不能在just_audio上运行,只是我可以将此插件用于通知栏?
  • 你不需要使用just_audio
【解决方案3】:

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

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

【讨论】:

  • 这篇文章已经过时了。
  • 很奇怪。它是从 2020 年 6 月 23 日开始的。我会试一试,因为我需要同时使用这两个包构建一个应用程序。
  • 在过去的一年中,软件包发生了很大变化。类的名称也已更改且不匹配。我最近在我的应用程序中添加了一个音频播放器。我结束了仅使用带有 audio_cache 的 audio_players 包来加载文件..
猜你喜欢
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 2021-04-20
  • 2011-04-09
  • 1970-01-01
相关资源
最近更新 更多