manifest看到入口为MusicBrowserActivity.java
public class MusicBrowserActivity extends Activity
implements MusicUtils.Defs
实现了接口MusicUtils.Defs ,实际上它只不过是一系列的常量
public class MusicUtils {
private static final String TAG = "MusicUtils";
public interface Defs {
public final static int OPEN_URL = 0;
public final static int ADD_TO_PLAYLIST = 1;
public final static int USE_AS_RINGTONE = 2;
public final static int PLAYLIST_SELECTED = 3;
。。。
这个是java中定义常量常用的方法,学习了
进入到onCreate函数
是一个Tab布局
int activeTab = MusicUtils.getIntPref(this, "activetab", R.id.artisttab);(这个函数其实是对取得SharedPreferences的封装)
在MusicUtils.java中通过getIntPref函数得到了当前Tab的资源ID. 默认是“艺术家”。
接着 MusicUtils.activateTab(this, activeTab);激活Tab中的内容(一个简单的switch..case判断),并结束当前Activity。
String shuf = getIntent().getStringExtra("autoshuffle");
if ("true".equals(shuf)) {
mToken = MusicUtils.bindToService(this, autoshuffle);
}
然后得到Intent通过Key值“autoshuffle”传过来的的字符串,若为true则把此activity与服务帮定。
autoshuffle 是用来回调的ServiceConnection
serv.setShuffleMode(MediaPlaybackService.SHUFFLE_AUTO);
并设置播放服务的模式为自动
(Activity继承自ContextThemeWrapper,ContextThemeWrapper继承自ContextWrapper,ContextWrapper继承自Context)
默认进入artisttab
接下来进入ArtistAlbumBrowserActivity.java中
onCreste()中
if (icicle != null) {
mCurrentAlbumId = icicle.getString("selectedalbum");
mCurrentAlbumName = icicle.getString("selectedalbumname");
mCurrentArtistId = icicle.getString("selectedartist");
mCurrentArtistName = icicle.getString("selectedartistname");
}
Bundle得到一些保存过的当前的专辑ID,name,ArtistId,ArtistName.
然后,Intent过滤器,加入了一些动作,并注册了广播;
IntentFilter f = new IntentFilter();
f.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);
f.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
f.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
f.addDataScheme("file");
registerReceiver(mScanListener, f);
setContentView(R.layout.media_picker_activity_expanding);看看布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_vertical" >
<!-- 当没有音乐的时候显示-->
<include layout="@layout/sd_error" />
<!-- 这里用一系列textView定义了artisttab albumtab songtab playlisttab 及 下方的nowplayingtab上内容的显示及点击状态等-->
<include layout="@layout/buttonbar" />
<ExpandableListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="18sp"
android:drawSelectorOnTop="false"
android:fastScrollEnabled="true"
android:indicatorLeft="8dip"
android:indicatorRight="52dip" />
<!-- 下方当前播放音乐的布局-->
<include layout="@layout/nowplaying" />
</LinearLayout>
分享到:
相关推荐
通过分析这个基于Android Studio的音乐播放器源码,开发者不仅可以学习到如何构建一个完整的音乐播放应用,还能深入理解Android平台上的多媒体处理、用户界面设计、服务组件使用等核心概念,为今后的Android开发打下...
这份“安卓音乐播放器相关-原生Android4.4音乐播放器源码原封未动原滋原味的代码学习最基本播放器框架”提供了一个基础的起点,帮助开发者深入理解如何在Android系统上实现一个基本的音乐播放功能。 1. **多媒体...
【Android音乐播放器源码分析】 在这个项目中,我们探讨的是一个基于Android平台的音乐播放器的源代码。这个开源项目提供了实现一个功能完备的音乐播放应用的基础框架,包括音乐库管理、播放控制、播放列表等功能。...
在Android系统中,音乐播放器(Music)是用户与音频内容互动的核心组件。在Android 4.4.2(KitKat)版本中,其源码提供了深入理解Android多媒体框架、服务、广播接收器以及UI设计的宝贵资源。下面将详细探讨这个源码...
【Android万能音乐播放器源码解析】 在移动设备上,音乐播放器是不可或缺的应用之一。"Android万能音乐播放器源码" 提供了一种深入理解如何在Android平台上开发功能丰富的音乐播放应用的机会。这款播放器的目标是...
在本项目中,我们讨论的是一个完整的Android音乐播放器应用,这是作者在结业时完成的一项成果。这个项目不仅包含了理论研究,还提供了实际的源代码,为学习和理解Android应用开发,特别是音乐播放器的实现,提供了...
在Android平台上,开发一款音乐播放器和视频播放器是相当常见的任务,这涉及到对多媒体文件的处理、用户界面设计以及Android系统服务的利用。本文将深入探讨如何基于Android Studio和Ubuntu操作系统来创建这样一个...
通过分析这个简易音乐播放器的源码,开发者可以学习到Android应用程序的基本架构,以及如何处理多媒体数据,实现音乐播放功能。这对于提升Android开发技能和理解Android系统的工作原理大有裨益。
通过GL音乐播放器源码,开发者可以学习如何使用OpenGL ES进行界面设计,创建动态和交互性强的视觉效果。 2. 音乐播放器架构: 深入分析源码,我们可以了解一个完整的音乐播放器是如何组织和运行的。这包括音频解码...
《Android应用源码解析:GL音乐播放器》 在Android平台上,开发一款音乐播放器是一项常见的任务,而GL音乐播放器作为一个开源项目,为开发者提供了深入理解音乐播放器实现细节的宝贵机会。本文将深入剖析GL音乐...
在本压缩包“Android应用源码之音乐播放器.zip”中,我们主要探讨的是一个针对Android平台开发的音乐播放器应用程序。这个项目源码为我们提供了一个深入理解Android应用开发,特别是音乐播放功能实现的实例。以下...
### Android-Music源码分析 #### 一、概述 在Android平台上,Music应用是一个非常典型且功能完善的多媒体播放器示例。通过对该应用的源代码进行解析,可以帮助开发者更好地理解如何构建一个完整的音频播放系统。...
综上所述,这个项目涉及到了Android应用开发的许多重要方面,对学习和实践Android音乐播放器开发具有很高的参考价值。开发者可以通过分析和研究这个源码,提升自己在Android多媒体处理、服务管理、UI设计和异步编程...
在这个名为"Android应用源码安卓奇葩音乐播放器项目.zip"的压缩包中,包含了一个针对Android平台开发的独特音乐播放器的源代码。这个项目对于学习Android应用开发,特别是音乐播放器应用的实现,提供了宝贵的实践...
【自然风音乐播放器源码】是一个用于创建音乐播放应用的软件开发资源,它提供了基本的音频播放功能,用户可以通过这个源码构建出一个简单易用的音乐播放器。源码通常包括程序的设计结构、逻辑控制和界面元素,是...
1. **音频格式支持**:音乐播放器需要支持常见的音频格式,如MP3、WAV、AAC、FLAC等。这通常需要使用特定的音频解码库,例如FFmpeg,它可以提供跨平台的音频解码能力。 2. **文件读取与缓冲**:在播放音乐时,...
【标题】: "基于Flutter的仿网易云音乐播放器" 【描述】: "这个开源项目是用Flutter框架构建的一个音乐播放器应用,旨在模仿网易云音乐的用户界面和功能。Flutter是Google推出的一种用于开发跨平台移动应用的开源UI...
本文将深入探讨名为"AndroidMusicBox"的Android原生音乐播放器的源码,旨在帮助读者理解Android音乐播放器的工作原理,提升对Android应用开发的理解和技能。 首先,"AndroidMusicBox"是一款针对Android平台的本地...
基于 Android 平台的音乐播放器设计与实现旨在为用户提供一个便捷、功能丰富的音乐体验,满足用户对移动设备音乐播放的需求。通过本次毕业设计,旨在提高开发者对 Android 应用程序开发的理解,掌握 Java 语言编程...
在本项目中,我们关注的是一个基于Android平台的高仿多米音乐播放器的应用程序。这个项目对于计算机科学,特别是Android开发专业的学生来说,是一个很好的毕业设计实例,它可以帮助学生深入理解Android应用的设计与...