我已经导入了audioplayer.dart,但它仍然向我显示错误:没有为类“_HomePageState”定义吸气剂“AudioPlayerState”
import 'package:audioplayers/audioplayers.dart';
_audioPlayer.onPlayerStateChanged.listen((event) {
if (event == AudioPlayerState.PLAYING) {
_isPlaying = true;
} else {
_isPlaying = false;
}
setState(() {});
});
if (event == PlayerState.PLAYING) {
在audioplayers包的更新版本中,PlayerState的值是小写的。
所以 PlayerState.PLAYING 现在是 PlayerState.playing
还有一些函数的名称已更新,例如 onAudioPositionChanged 现在更改为 onPositionChanged,但其工作原理是相同的。
要解决您的问题,您可以这样做
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();