热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android自带音乐播放器代码分析(1)

要查看android自带的Music播放器需要下载android源码,具体方法在android源码网站有介绍,自带的Music播放器的代码位于android4.0\packages\apps\Musi

要查看android自带的Music播放器需要下载android源码,具体方法在android源码网站有介绍,自带的Music播放器的代码位于android4.0\packages\apps\Music中 为了查看代码的方便可以将项目导入Eclipse查看,忽略提示的错误。

原生的music代码有很多bug,可以用虚拟机模拟查看。

首先查看整个项目中的java类如下介绍各类的作用:

1.AlbumBrowserActivity此类继承自ListActivity实现接口View.OnCreateContextMenuListener,   MusicUtils.Defs,    ServiceConnection该类的作用是显示专辑的界面。

2.ArtistAlbumBrowserActivity此类继承自ExpandableListActivity实现接口View.OnCreateContextMenuListener, MusicUtils.Defs, ServiceConnection该类的作用是显示艺术家列表,内部是ExpandableList。

3.AudioPreview此类继承自Activity实现接口OnPreparedListener, OnErrorListener, OnCompletionListener此类提供界面当其他程序如彩信要加入音乐时提供音乐预览的界面。

4.CheckableRelativeLayout此类继承自RelativeLayout实现接口Checkable,这是一个自定义的布局

5.CreatePlaylist此类继承自Activity该类提供创建播放列表的界面

6.DeleteItems此类继承自Activity该类提供删除音乐时的提示界面主题是Dialog

7.MediaAppWidgetProvider此类继承自AppWidgetProvider,其作用是实现桌面的音乐插件

8.MediaButtonIntentReceiver此类继承自BroadcastReceiver,此类提供对相应按钮按下发送的广播进行接收的机制

9.MediaPickerActivity此类继承自ListActivity实现接口MusicUtils.Defs

10.MediaPlaybackActivity此类继承自Activity实现接口MusicUtils.Defs,  View.OnTouchListener,  View.OnLongClickListener该类提供音乐播放的界面,用户在该界面上可以点击控制音乐的播放,暂停,前进和后退。

11.MediaPlaybackService此类继承自Service此类提供音乐的播放服务,音乐的播放控制都在内部定义的

12.MusicAlphabetIndexer此类继承自AlphabetIndexer

13.MusicBrowserActivity此类继承自Activity实现接口 MusicUtils.Defs

14.MusicPicker此类继承自ListActivity

15.MusicUtils该类提供获取音乐播放状态的辅助方法

16.PlaylistBrowserActivity此类继承自View.OnCreateContextMenuListener,  MusicUtils.Defs此类用于显示播放列表

17.QueryBrowserActivity此类继承自ListActivity实现接口MusicUtils.Defs, ServiceConnection

18.RenamePlaylist此类继承自Activity该类用于对音乐列表进行重命名

19.RepeatingImageButton此类继承自ImageButton该类实现长按某个图片时 歌曲的快进

20.ScanningProgress此类继承自Activity显示当前扫描的进度

21.SharedPreferencesCompat存储上次使用时的某些播放器首选项的信息保存

22.SortCursor此类继承自AbstractCursor

23.TouchInterceptor此类继承自ListView

24.TrackBrowserActivity此类继承自ListActivity 实现接口 View.OnCreateContextMenuListener,   MusicUtils.Defs,   ServiceConnection

25.VerticalTextSpinner此类继承自View

26.VideoBrowserActivity此类继承ListActivity 实现接口 MusicUtils.Defs

27.WeekSelector此类继承自Activity

28.还有个定义的 aidl文件IMediaPlaybackService此文件中定义了IPC的接口

 


推荐阅读
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Stringtitle=titleText.getText().toString();Stringtimelength=lengthText.getText().toSt ... [详细]
  • 基于TensorFlow的Keras高级API实现手写体数字识别
    前言这个项目的话我也是偶然在B站看到一个阿婆主(SvePana)在讲解这个,跟着他的视频敲的代码并学习起来的。并写在自己这里做个笔记也为 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
author-avatar
mobiledu2502876293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有