继续深入的将一下just_audio和audio_service搭配怎么在也没啥上使用
这里主要是创建了一个全局管理page_manager.dart
首先整理一下需求,我们在页面上需要展示到播放列表,当前正在播放的歌曲,当前正在播放歌曲的时间进度,播放器状态,是私人fm模式吗?
首先就是定义一个底部播放器插件,用于在各个页面对音频的简单操控
这里我们需要get_it => page_manager.dart 中的一些参数来控制显示
首先是当前音频是不是在播放状态,是否有歌曲
// 展示核心逻辑
// 第一步 获取到PageManager实例
@override
Widget build(BuildContext context) {
final model = getIt<PageManager>();
// 返回容器盒子
return Container(
child: ValueListenableBuilder<List>(
valueListenable: model.playlistNotifier, // 这里获取到播放列表
builder:(context, value, child){
// 在builder中就可以通过播放列表是否为空来判断该如何显示显示
if (value.isEmpty) {
// 没有播放列表是
...
}else{
// 有的话就拿目前选中的一首,在获取到播放状态等等你需要的东西
}
}
)
);
}
所以我们回到page_manager.dart 中看一下我都定义了哪些数据
class PageManager {
final currentSongTitleNotifier = PlayItemNotifier();
final playlistNotifier = ValueNotifier<List>([]); // 播放列表
final progressNotifier = ProgressNotifier(); // 时间进度条
// final repeatButtonNotifier = RepeatButtonNotifier();
final isFirstSongNotifier = ValueNotifier<bool>(true); // 是不是第一首歌
final playButtonNotifier = PlayButtonNotifier();
final isLastSongNotifier = ValueNotifier<bool>(true); // 是不是最后一首歌
final isShuffleMod