Flutter -如何知道音频何时开始播放?(无需用户操作)

vuktfyat  于 2022-11-17  发布在  Flutter
关注(0)|答案(2)|浏览(153)

我有一个应用程序,开始播放音频文件自动在特定的屏幕上。
我想根据播放的音频在屏幕上显示相关的消息。
问题是,每次我加载音频时,它的加载时间都不一样,因此我不知道什么时候开始显示消息。
我想知道音频何时开始播放(没有用户输入)。
编码:

Future<int> _playAudio({required String url}) async {
    final playPosition = (_position != null &&
            _duration != null &&
            _position!.inMilliseconds > 0 &&
            _position!.inMilliseconds < _duration!.inMilliseconds)
        ? _position
        : null;
    final result = await _audioPlayer.play(url, position: playPosition);
    if (result == 1) {
      setState(() => _playerState = PlayerState.PLAYING);
      displayMessage();
    }
    _audioPlayer.setPlaybackRate();
    return result;
  }

谢谢你!

b0zn9rqh

b0zn9rqh1#

您可以侦听_audioPlayerPlayerState事件,如此处所述状态事件

_audioPlayer.onPlayerStateChanged.listen((PlayerState s) => {
  print('Current player state: $s');
  setState(() => _playerState = s);
});
k3fezbri

k3fezbri2#

_audioPlayer.onNotificationPlayerStateChanged.listen((status) {
  status == PlayerState.PLAYING;// PLAYING,PAUSED,STARTED,COMPLETED
});

相关问题