flutter 仿网易云音乐(3)

继续深入的将一下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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值