Flutter 错误:未为类“_HomePageState”定义 getter“AudioPlayerState”

问题描述 投票:0回答:3

我已经导入了audioplayer.dart,但它仍然向我显示错误:没有为类“_HomePageState”定义吸气剂“AudioPlayerState”

import 'package:audioplayers/audioplayers.dart';
_audioPlayer.onPlayerStateChanged.listen((event) {
  if (event == AudioPlayerState.PLAYING) {
    _isPlaying = true;
  } else {
    _isPlaying = false;
  }
  setState(() {});
});
flutter dart audio-player
3个回答
4
投票
  if (event == PlayerState.PLAYING) {

1
投票

在audioplayers包的更新版本中,PlayerState的值是小写的。

所以 PlayerState.PLAYING 现在是 PlayerState.playing

还有一些函数的名称已更新,例如 onAudioPositionChanged 现在更改为 onPositionChanged,但其工作原理是相同的。


0
投票

要解决您的问题,您可以这样做

   class AudioManager {

  static final AudioManager _instance = AudioManager._internal();

  factory AudioManager() => _instance;

  AudioManager._internal() {
    player.onPlayerStateChanged.listen((state) {
      _isPlaying = (state == PlayerState.playing);
    });
  }

  final AudioPlayer player = AudioPlayer();

  bool _isPlaying = false;

  void play(String asset) {
    if (!_isPlaying) {
      player.setReleaseMode(ReleaseMode.loop);
      player.play(AssetSource(asset));
    }
  }

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

}

确保您已导入 音频播放器.dart'; 像这样

import 'package:audioplayers/audioplayers.dart';

要使用它,您只需

    final audioManager = AudioManager();

    audioManager.play("assets/music.mp3");

    audioManager.stop();
© www.soinside.com 2019 - 2024. All rights reserved.