一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android开发在线音频播放器_章节二_PlayActivity页面实现详解

时间:2026-05-27 13:00:01 编辑:袖梨 来源:一聚教程网

本文将详细介绍音频播放器UI实现的关键技术点,涵盖网络检测、封面动画、播放变量管理等内容。由于代码涉及商业机密,仅展示核心功能实现片段。 背景说明:播放器支持专辑播放功能,包含歌曲列表、播放控制、收藏等基础功能,界面设计与主流音乐应用相似。 1. 网络权限与实现 首先需要确保应用具备网络访问权限,并实时监测网络状态变化。 IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { registerReceiver(networkReceiver, filter, Context.RECEIVER_EXPORTED); }else { registerReceiver(networkReceiver, filter); } boolean isNetWork = false;private BroadcastReceiver networkReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { isNetWork = JxwApplication.isNetwork(); if(isNetWork){ //有网 if (netWorkDialog != null && netWorkDialog.isShowing()) { netWorkDialog.dismiss();//隐藏无网弹窗 } }else {//无网 if(netWorkDialog!=null){ netWorkDialog.show(); //显示无网弹窗 } animatorSet.pause(); //暂停封面旋转 } } } }; 2. 专辑封面旋转动画 实现专辑封面的旋转效果,增强播放体验。 AnimatorSet animatorSet; private String book_cover; //专辑封面//==========在onCreate 中=================== RequestOptions options = new RequestOptions();//图片圆角 Glide.with(ReadTextActivity.this).load(book_cover) .placeholder(R.mipmap.img_med_player_placeholder) // 占位图资源ID .error(R.mipmap.img_med_player_placeholder) // 错误占位图资源ID .apply(options).into(mBinding.ivCover);animatorSet = new AnimatorSet(); ObjectAnimator rotateAnimator = ObjectAnimator.ofFloat(mBinding.ivCover, "rotation", 0f, 360f); rotateAnimator.setInterpolator(new LinearInterpolator()); rotateAnimator.setDuration(10000); rotateAnimator.setRepeatCount(Animation.INFINITE); rotateAnimator.setRepeatMode(ValueAnimator.RESTART); animatorSet.playTogether(rotateAnimator); animatorSet.start(); animatorSet.pause();//====================播放==================== animatorSet.resume(); //====================暂停==================== animatorSet.pause();//==========在onDestroy 中=================== if (animatorSet != null) { animatorSet.cancel(); animatorSet = null; } 3. 播放状态变量管理 关键播放变量包括专辑信息、播放模式、播放速度等,部分设置需要持久化存储。 private String book_cover; //专辑封面 private String book_name; private int bookId; private boolean isCollect = false; //是否收藏 private String unit_name; //正在播放的歌曲名称 public static float speed = 1f; //预选 播放速度 public static int loop_type = 0; // 0顺序播放 1单篇循环 2随机播放 public static boolean isplay = true; //播放状态 private String jsonList; //播放的歌曲列表数据 private int pre_gb_time = 0; //定时播放的时间 0/15/30/45分钟 4. 事件通信机制 采用EventBus实现播放服务与UI的高效通信,避免回调地狱问题。 //引用 implementation 'org.greenrobot:eventbus:3

热门栏目