flutter - 如何在 dart/flutter 中收听流值

任何人帮助追踪音频的位置(即)

   if(durationtoOne(position==5)){
FlutterToast.Showtoast(msg:"I am At 5 sec");
}

如果在 initstate 中添加出现错误,我会被困在何处添加此代码,
我想通过音频平台收听位置

代码从这里开始

  import 'dart:async';import 'package:assets_audio_player/assets_audio_player.dart';import 'package:flutter/material.dart';import 'package:fluttertoast/fluttertoast.dart';class SmartMantra extends StatefulWidget {@override_SmartMantraState createState() => _SmartMantraState();
}class _SmartMantraState extends State<SmartMantra> {StreamSubscription _positionSubscription;Duration position;AssetsAudioPlayer _assetsAudioPlayer;stream() {_positionSubscription = _assetsAudioPlayer.currentPosition.listen((p) => setState(() => position = p),);}@overridevoid initState() {_assetsAudioPlayer.open("assets/shivamantra.mp3");stream();_assetsAudioPlayer.finished.listen((finished) {print(finished);
//      print(count);});super.initState();}@overridevoid dispose() {_positionSubscription.cancel();super.dispose();}@overrideWidget build(BuildContext context) {return Scaffold(body: Column(children: <Widget>[SizedBox(height: 70,),Center(child: Text(durationToone(position).toString(),style: TextStyle(color: Colors.black, fontSize: 12),),),//getTextContainer()],));}
int durationToone(Duration duration) {int twoDigits(int n) {if (n >= 10) return n;return n;}int twoDigitSeconds =twoDigits(duration.inSeconds.remainder(Duration.secondsPerMinute));return twoDigitSeconds;
}
}

代码到此结束

总结:在特定位置需要在位置变化时触发一些函数(即)

if(durationtoOne(position==5)){
FlutterToast.Showtoast(msg:"I am At 5 sec");
}

通过音频播放或应用程序在前台

最佳答案

如果流不是广播流,则您只能收听一次。

请参阅此 Medium post 以了解有关 Streams 的更多信息。

收听 stream 时,您需要在 _assetsAudioPlayer.currentPosition 函数中添加您的代码。

import 'dart:async';
import 'package:assets_audio_player/assets_audio_player.dart';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';class SmartMantra extends StatefulWidget {@override_SmartMantraState createState() => _SmartMantraState();
}class _SmartMantraState extends State<SmartMantra> {StreamSubscription _positionSubscription;Duration position;AssetsAudioPlayer _assetsAudioPlayer;stream() {_positionSubscription = _assetsAudioPlayer.currentPosition.listen((p) {setState(() => position = p));// You should add your code hereif(durationtoOne(position==5)){FlutterToast.Showtoast(msg:"I am At 5 sec");}}}@overridevoid initState() {_assetsAudioPlayer.open("assets/shivamantra.mp3");stream();_assetsAudioPlayer.finished.listen((finished) {print(finished);
//          print(count);});super.initState();}@overridevoid dispose() {_positionSubscription.cancel();super.dispose();}@overrideWidget build(BuildContext context) {return Scaffold(body: Column(children: <Widget>[SizedBox(height: 70,),Center(child: Text(durationToone(position).toString(),style: TextStyle(color: Colors.black, fontSize: 12),),),//getTextContainer()],));}int durationToone(Duration duration) {int twoDigits(int n) {if (n >= 10) return n;return n;}int twoDigitSeconds =twoDigits(duration.inSeconds.remainder(Duration.secondsPerMinute));return twoDigitSeconds;}
}

flutter - 如何在 dart/flutter 中收听流值相关推荐

  1. flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中?

    flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中? 如何在Dart / Flutter中将某些元素从一个Map复制到新Map中? Old_Map = {'A' ...

  2. 如何在MS Project中进行挣值分析

    如何在MS Project中进行挣值分析 关于挣值分析    挣值分析是衡量项目绩效的一种方法.它指明相应于到目前为止完成的工作量多少预算应该已经用掉以及对于该任务,分配或资源的比较基准成本.  用于 ...

  3. 如何在R代码中找到一个值的行号

    如何在R代码中找到一个值的行号? 例如: 在以下一组值中,如何在第4列中找到特定值的行号? 如何使用R代码命令找到列4中的值"1578"的行号. > mydata_2sex ...

  4. python饼图显示数量_如何在matplotlib饼图中显示实际值(Python)?

    使用autopct关键字 我们知道显示的百分比乘以所有实际值之和必须是实际值,我们可以将其定义为一个函数,并使用autopct关键字将此函数提供给plt.pie.import matplotlib.p ...

  5. android ui flutter,android-如何在运行flutter应用程序时解决’dart:ui’错误?

    Below错误发生在我尝试运行我的第一个flutter应用程序时. file:///Volumes/Data/FlutterSDk/flutter/packages/flutter/lib/src/c ...

  6. java 文件流读取文本_如何在Java 8中处理流和读取文本文件

    java 文件流读取文本 我已经使用最新的Java8转换了一个旧的实用程序类. 我经常使用它来打印清单文件的内容,以检查任何神秘的jar文件的版本等.只需运行" java ztools.Pr ...

  7. flutter调用api_如何在Flutter(REST API)中进行API调用

    flutter调用api 在本文中,我们将看一下如何快速进行API调用并使用简单的REST API. 在这里查看我在Flutter上的其他一些帖子: Flutter vs React Native 了 ...

  8. 如何在Flutter(REST API)中进行API调用

    在本文中,我们将探讨如何在波动中进行API调用并使用简单的REST API. 在这里查看我在Flutter上的其他一些帖子: Flutter vs React Native 了解Flutter中的BL ...

  9. Flutter学习之Dart语法特性

    一.前言 第一天把Flutter环境搭建了,并简单实现第运行第一个Flutter项目,感觉很不错,一些基本操作和原生体验差不多.用Flutter框架写过App项目的开发者都知道,Flutter是一个使 ...

最新文章

  1. **PHP SimpleXML 使用详细例子
  2. php超链接如何隐藏参数,php如何去除超链接
  3. iphone退款申请教程_如何下载下架的APP?买错应用怎么退款?学会这几招iPhone更好用...
  4. 自然哲学的数学原理_物理起源点,牛顿《自然哲学的数学原理》
  5. 用于大型事件处理的Akka Java
  6. mysql数据库 auto_increment_mysql数据库 auto_increment
  7. Redis在Window服务下的安装
  8. 计算机都要学python吗_大学计算机要不要学python?
  9. 测试库的接收到的数据是否完整(jrtplib为列)
  10. nowcoder 合并回文子串
  11. transform-origin用于设置变换原点
  12. 旅游大数据:从投资决策到分析工作的常态化
  13. HC05蓝牙模块特点及使用介绍
  14. 探究文华盘整(PANZHENG)函数之一
  15. 聚集索引与非聚集索引
  16. 网络项目实施方案介绍
  17. 1.1 n阶行列式子的定义
  18. 09、查询详细信息和删除记录
  19. SCI:SCI论文写作技巧的详细攻略
  20. Bi-directional Cross-Modality Feature Propagation with Separation-and Aggregation Gate_eccv2020

热门文章

  1. python矩阵运算_Python矩阵常见运算操作实例总结
  2. mysql查询语句习题._MySql数据库基本select查询语句练习题,初学者易懂。
  3. python构建区块链_用python构建区块链(1)---基本结构
  4. 减少静态链接库的体积
  5. qemu模拟armlinux执行目标文件系统的可执行文件
  6. ubuntu16 php mysql_Ubuntu16.04 搭建 LAMP(Ubuntu16.04 、apache 2.4.18、MySQL 5.7.22、PHP 7.0.28)...
  7. pandas describe函数_SQL和Pandas同时掉到河里,你先救谁?
  8. vim技巧之删除引号之间的的快捷键
  9. vim替换某行到某行的命令方法
  10. hibernate 无法保存timestamp_为什么很多人不愿意用hibernate了?