美文网首页FlutterFlutter圈子Flutter中文社区
flutter -- 音频播放 audioplayers

flutter -- 音频播放 audioplayers

作者: 反者道之动001 | 来源:发表于2019-08-11 21:14 被阅读14次

    使用第三方插件实现音频播放,支持安卓、IOS

    先上官网链接:
    https://pub.dev/packages/audioplayers

    安装

    根目录打开 pubspec.yaml 找到dependencies, 添加

      audioplayers: ^0.13.1
    

    控制台:(有些编辑器会自动帮你安装)

    flutter pub get
    

    使用

    引用

    import 'package:audioplayers/audioplayers.dart';
    

    初始化

    AudioPlayer audioPlayer = AudioPlayer();
    

    播放

        play() async {
          int result = await audioPlayer.play(xxx.mp3);
          if (result == 1) {
            // success
            print('play success');
          } else {
            print('play failed');
          }
        }
    

    暂停

    pause() async {
          int result = await audioPlayer.pause();
          if (result == 1) {
            // success
            print('pause success');
          } else {
            print('pause failed');
          }
        }
    

    转跳

    int result = await audioPlayer.seek(new Duration(milliseconds: startMilliseconds));
            if (result == 1) {
              print('go to success');
              // await audioPlayer.resume();
            } else {
              print('go to failed');
            }
    

    播放中监听

    audioPlayer.onAudioPositionChanged.listen((p) async {
      // p参数可以获取当前进度,也是可以调整的,比如p.inMilliseconds
    })
    

    milliseconds参数可以调整的,请注意这个部分,不然发现一转头就没声音,要设置好哦。

    一般我只用到这些,更多请看官网。

    TIPS

    请不要在build函数里面声明变量。在initState中初始化,参考:

    
      @override
      void initState() {
        super.initState();
        initAudioPlayer();
      }
    
      void initAudioPlayer() {
        audioPlayer = new AudioPlayer();
    
        _positionSubscription =
            audioPlayer.onAudioPositionChanged.listen((p) async {
          if (!pickItem.containsKey('end')) {
            return;
          }
    ...
    

    flutter pub get
    

    的时候
    如果你遇到了如下错误

    "flutter run" prints warning multiple times after switching Flutter SDK's
    请运行如下命令
    flutter packages upgrade
    如果你运行这个的时候出现
    Waiting for another flutter command to release the startup lock

    请切换到flutter安装目录下,运行
    rm ./bin/cache/lockfile

    然后再次执行

    flutter packages upgrade

    问题将解决。

    --END--

    相关文章

      网友评论

        本文标题:flutter -- 音频播放 audioplayers

        本文链接:https://www.haomeiwen.com/subject/jfxejctx.html