`

[原]Android 音乐播放器源码分析1

阅读更多
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开发的音乐播放器APP源码Android 音乐播放器源码

    通过分析这个基于Android Studio的音乐播放器源码,开发者不仅可以学习到如何构建一个完整的音乐播放应用,还能深入理解Android平台上的多媒体处理、用户界面设计、服务组件使用等核心概念,为今后的Android开发打下...

    安卓音乐播放器相关-原生Android4.4音乐播放器源码原封未动原滋原味的代码学习最基本播放器框架.rar

    这份“安卓音乐播放器相关-原生Android4.4音乐播放器源码原封未动原滋原味的代码学习最基本播放器框架”提供了一个基础的起点,帮助开发者深入理解如何在Android系统上实现一个基本的音乐播放功能。 1. **多媒体...

    Android音乐播放器源码.zip

    【Android音乐播放器源码分析】 在这个项目中,我们探讨的是一个基于Android平台的音乐播放器的源代码。这个开源项目提供了实现一个功能完备的音乐播放应用的基础框架,包括音乐库管理、播放控制、播放列表等功能。...

    Android4.42原生音乐播放器 Music源码

    在Android系统中,音乐播放器(Music)是用户与音频内容互动的核心组件。在Android 4.4.2(KitKat)版本中,其源码提供了深入理解Android多媒体框架、服务、广播接收器以及UI设计的宝贵资源。下面将详细探讨这个源码...

    android万能音乐播放器源码.zip

    【Android万能音乐播放器源码解析】 在移动设备上,音乐播放器是不可或缺的应用之一。"Android万能音乐播放器源码" 提供了一种深入理解如何在Android平台上开发功能丰富的音乐播放应用的机会。这款播放器的目标是...

    Android音乐播放器结业论文加源码

    在本项目中,我们讨论的是一个完整的Android音乐播放器应用,这是作者在结业时完成的一项成果。这个项目不仅包含了理论研究,还提供了实际的源代码,为学习和理解Android应用开发,特别是音乐播放器的实现,提供了...

    Android 音乐播放器+视频播放器

    在Android平台上,开发一款音乐播放器和视频播放器是相当常见的任务,这涉及到对多媒体文件的处理、用户界面设计以及Android系统服务的利用。本文将深入探讨如何基于Android Studio和Ubuntu操作系统来创建这样一个...

    Android源码——简易音乐播放器源码.zip

    通过分析这个简易音乐播放器的源码,开发者可以学习到Android应用程序的基本架构,以及如何处理多媒体数据,实现音乐播放功能。这对于提升Android开发技能和理解Android系统的工作原理大有裨益。

    安卓Android源码——GL音乐播放器.zip

    通过GL音乐播放器源码,开发者可以学习如何使用OpenGL ES进行界面设计,创建动态和交互性强的视觉效果。 2. 音乐播放器架构: 深入分析源码,我们可以了解一个完整的音乐播放器是如何组织和运行的。这包括音频解码...

    Android应用源码之GL音乐播放器.zip

    《Android应用源码解析:GL音乐播放器》 在Android平台上,开发一款音乐播放器是一项常见的任务,而GL音乐播放器作为一个开源项目,为开发者提供了深入理解音乐播放器实现细节的宝贵机会。本文将深入剖析GL音乐...

    Android应用源码之音乐播放器.zip

    在本压缩包“Android应用源码之音乐播放器.zip”中,我们主要探讨的是一个针对Android平台开发的音乐播放器应用程序。这个项目源码为我们提供了一个深入理解Android应用开发,特别是音乐播放功能实现的实例。以下...

    Android-Music源码分析

    ### Android-Music源码分析 #### 一、概述 在Android平台上,Music应用是一个非常典型且功能完善的多媒体播放器示例。通过对该应用的源代码进行解析,可以帮助开发者更好地理解如何构建一个完整的音频播放系统。...

    Android 改进10-yannihui(音乐播放器)源码.zip

    综上所述,这个项目涉及到了Android应用开发的许多重要方面,对学习和实践Android音乐播放器开发具有很高的参考价值。开发者可以通过分析和研究这个源码,提升自己在Android多媒体处理、服务管理、UI设计和异步编程...

    Android应用源码安卓奇葩音乐播放器项目.zip

    在这个名为"Android应用源码安卓奇葩音乐播放器项目.zip"的压缩包中,包含了一个针对Android平台开发的独特音乐播放器的源代码。这个项目对于学习Android应用开发,特别是音乐播放器应用的实现,提供了宝贵的实践...

    自然风音乐播放器源码.rar

    【自然风音乐播放器源码】是一个用于创建音乐播放应用的软件开发资源,它提供了基本的音频播放功能,用户可以通过这个源码构建出一个简单易用的音乐播放器。源码通常包括程序的设计结构、逻辑控制和界面元素,是...

    简单音乐播放器下载源代码

    1. **音频格式支持**:音乐播放器需要支持常见的音频格式,如MP3、WAV、AAC、FLAC等。这通常需要使用特定的音频解码库,例如FFmpeg,它可以提供跨平台的音频解码能力。 2. **文件读取与缓冲**:在播放音乐时,...

    基于flutter的仿网易云音乐播放器.zip

    【标题】: "基于Flutter的仿网易云音乐播放器" 【描述】: "这个开源项目是用Flutter框架构建的一个音乐播放器应用,旨在模仿网易云音乐的用户界面和功能。Flutter是Google推出的一种用于开发跨平台移动应用的开源UI...

    AndroidMusicBox_android源码_源码

    本文将深入探讨名为"AndroidMusicBox"的Android原生音乐播放器的源码,旨在帮助读者理解Android音乐播放器的工作原理,提升对Android应用开发的理解和技能。 首先,"AndroidMusicBox"是一款针对Android平台的本地...

    安卓音乐播放器

    基于 Android 平台的音乐播放器设计与实现旨在为用户提供一个便捷、功能丰富的音乐体验,满足用户对移动设备音乐播放的需求。通过本次毕业设计,旨在提高开发者对 Android 应用程序开发的理解,掌握 Java 语言编程...

    Android 高仿多米音乐播放器-IT计算机-毕业设计.zip

    在本项目中,我们关注的是一个基于Android平台的高仿多米音乐播放器的应用程序。这个项目对于计算机科学,特别是Android开发专业的学生来说,是一个很好的毕业设计实例,它可以帮助学生深入理解Android应用的设计与...

Global site tag (gtag.js) - Google Analytics