Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在音频播放器中获取当前持续时间_Flutter_Dart_Flutter Dependencies_Audio Player_Just Audio - Fatal编程技术网

Flutter 如何在音频播放器中获取当前持续时间

Flutter 如何在音频播放器中获取当前持续时间,flutter,dart,flutter-dependencies,audio-player,just-audio,Flutter,Dart,Flutter Dependencies,Audio Player,Just Audio,我以前使用的是just_audio,我现在使用的是这样的时间 player.positionStream.listen((event) { playerTimeNow = event; updatePlayerBar(); }); 现在我需要知道如何在这篇文章中获得时间,我建议您看看这篇文章: 它有一个关于如何组合这两个包的示例。请改用pub dev上的包 它提供通知控件,无需任何其他实现 另一个插件是。我从你的问题中了解到的是,你想要音频的当前播放位置,并想要更新你的播放器栏。为此

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

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

现在我需要知道如何在这篇文章中获得时间,我建议您看看这篇文章:

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

请改用pub dev上的包

它提供通知控件,无需任何其他实现


另一个插件是。

我从你的问题中了解到的是,你想要音频的当前播放位置,并想要更新你的播放器栏。为此,您可以使用
assetudioplayer
currentPosition
属性,该属性返回
ValueStream
。您可以
收听
当前位置
或在
流生成器中使用它

只需
收听
当前位置
流:

 assetsAudioPlayer.currentPosition.listen((positionValue){
   playerTimeNow = positionValue;
  updatePlayerBar();
 });
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
          ),
   ); 
或者您也可以使用
StreamBuilder

return StreamBuilder(
    stream: assetsAudioPlayer.currentPosition,
    builder: (context, asyncSnapshot) {
        final Duration duration = asyncSnapshot.data;
        return Text(duration.toString());  
    }),
StreamBuilder
中包装要提供当前音频位置的
小部件
,并使用从
asyncSnapshot.data
接收的值

对于自定义通知:

使用
音频
自定义通知:

 assetsAudioPlayer.currentPosition.listen((positionValue){
   playerTimeNow = positionValue;
  updatePlayerBar();
 });
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(音频、显示通知:true)

这篇文章已经过时了。从2020年6月23日开始。我将尝试一下,因为我需要使用这两个软件包来构建一个应用程序。这些软件包在过去一年中改变了很多。类的名称也已更改,并且不匹配。我最近在我的应用程序中添加了一个音频播放器。我结束了只使用带有音频缓存的音频播放器包来加载文件的过程。你是说音频服务吗?它附带了一个完整的示例,可以下载并运行just_audio,这可能会有所帮助。如果您的应用程序与该示例有不同的要求,也许你可以在你的问题中更详细地说明这个例子不充分的地方,我会试着写一个答案。意思是只需要添加插件而不是代码中的任何实现?是的,只需要使用这个插件,并在播放时传递布尔字段来创建通知。但是我只使用音频,所以当播放器打开时运行此命令,使其明显发出2种声音?难道这不可能吗?播放器将运行在just_audio上,我可以将此插件用于通知栏?您不需要使用just_audio,谢谢shubam,它可以正常工作。你能告诉我一件事,我如何在这个插件播放器的通知栏中添加图像?再次感谢我的回答@UmaizKhan赏金呢?是的,现在是你的了还有6个小时可以赏金