Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 颤振|音频播放器持续时间更改方法为';我不想在IOS上工作_Flutter_Dart - Fatal编程技术网

Flutter 颤振|音频播放器持续时间更改方法为';我不想在IOS上工作

Flutter 颤振|音频播放器持续时间更改方法为';我不想在IOS上工作,flutter,dart,Flutter,Dart,我正在尝试制作某种mp3播放器应用程序,我正在使用AudioPlayer软件包。它在Android上运行良好,但在IOS上,onDurationChanged似乎没有被调用。 由于我还显示了一个滑块,它在IOS上给出了一个错误,因为max值返回null 这是我的密码 class AudioProvider extends ChangeNotifier { AudioProvider() { initAudio(); } AudioPlayer _audioPlayer = A

我正在尝试制作某种mp3播放器应用程序,我正在使用AudioPlayer软件包。它在Android上运行良好,但在IOS上,onDurationChanged似乎没有被调用。 由于我还显示了一个滑块,它在IOS上给出了一个错误,因为
max
值返回null

这是我的密码

class AudioProvider extends ChangeNotifier {
  AudioProvider() {
    initAudio();
  }
  AudioPlayer _audioPlayer = AudioPlayer();

  Duration totalDuration;
  Duration position;
  String audioState;

  initAudio() {
    _audioPlayer.onDurationChanged.listen((updatedDuration) {
      totalDuration = updatedDuration; // This doesn't work on IOS, totalDuration == null
      notifyListeners();
    });

    _audioPlayer.onAudioPositionChanged.listen((updatedPosition) {
      position = updatedPosition;
      notifyListeners();
    });

    _audioPlayer.onPlayerStateChanged.listen((playerState) {
      if (playerState == AudioPlayerState.STOPPED) audioState = "Stopped";
      if (playerState == AudioPlayerState.PLAYING) audioState = "Playing";
      if (playerState == AudioPlayerState.PAUSED) audioState = "Paused";
      notifyListeners();
    });
  }

  playPauseAudio(String url, bool alreadyPlaying) async {
    if (!alreadyPlaying) {
      position = null;
      totalDuration = null;
      await _audioPlayer.play(url);
      notifyListeners();
    }

    if (audioState == 'Playing') {
      await _audioPlayer.pause();
    } else {
      await _audioPlayer.resume();
    }
    notifyListeners();
  }

  void stop() {
    _audioPlayer.stop();
  }

  void seekToSec(Duration durationToSeek) {
    _audioPlayer.seek(durationToSeek);
    notifyListeners();
  }