Android 原生音乐播放器Music源码分析之一

本文从Music.apk的Android.mk文件开始,探讨Music播放器的源码分析,涉及ProGuard的使用方法,以及主要组件如TrackBrowserActivity、MediaPlayerBackActivity、MediaPlaybackService等的分析,还提到了一些关键UI界面和公共方法类。
摘要由CSDN通过智能技术生成

最近一直想学习多媒体,作为初学者,只能慢慢分析android 源码。这里我会从Music播放器入手开始一步一步分析。

Music.apk的代码所在目录为packages/apps/Music/

首先看一下Android.mk文件(Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等)

<span style="font-family:Times New Roman;">
1LOCAL_PATH:= $(call my-dir) /*用来定位源文件的位置,$(call my-dir)的作用就是返回当前目录的路径*/
2include $(CLEAR_VARS) /*清除一些变量的值,但是LOCAL_PATH除外*/
3
4LOCAL_MODULE_TAGS := optional /*模块在所有版本eng、user和tests下都编译*/
5
6LOCAL_SRC_FILES := $(call all-java-files-under, src) \  /*编译的源文件,src目录下的所有java文件和指定aidl文件*/
7	src/com/android/music/IMediaPlaybackService.aidl
8
9LOCAL_PACKAGE_NAME := Music /*编译成的包名,即apk文件名*/
10
11LOCAL_PROGUARD_FLAG_FILES := proguard.flags
12
13include $(BUILD_PACKAGE) /*编译成应用包*/
14
15# Use the folloing include to make our test apk. 
16include $(call all-makefiles-under,$(LOCAL_PATH)) /* 编译当前路径下的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴帮助你。下面是一个简单的Android Studio项目,该项目使用原生的MediaPlayer API实现了一个基本的音乐播放器。 首先,你需要在Android Studio中创建一个新项目,并添加以下权限到你的AndroidManifest.xml文件中: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` 这些权限将允许你访问设备上的音乐文件。 接下来,你需要创建一个MainActivity类。在这个类中,你需要创建一个MediaPlayer对象,并为它设置一个监听器,以便在播放过程中更新UI。 ```java public class MainActivity extends AppCompatActivity implements MediaPlayer.OnCompletionListener { private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mediaPlayer = new MediaPlayer(); mediaPlayer.setOnCompletionListener(this); } @Override public void onCompletion(MediaPlayer mediaPlayer) { // 播放完成时回调此方法 } } ``` 接下来,你需要创建一个方法,以便从设备上的文件系统中加载音乐文件,并将其添加到MediaPlayer对象中。 ```java private void loadMusicFile() { try { File musicFile = new File(Environment.getExternalStorageDirectory().getPath() + "/Music/my_song.mp3"); mediaPlayer.setDataSource(musicFile.getPath()); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } } ``` 在这个示例中,我们将音乐文件存储在设备的Music文件夹中,并将其命名为my_song.mp3。请记住,你需要将其替换为实际的音乐文件路径。 现在,你可以创建一些UI元素,例如播放/暂停按钮,用于控制音乐播放。这些元素可以在activity_main.xml布局文件中定义。例如,以下代码将创建一个Button元素,并将其与名为playButton的ID相关联: ```xml <Button android:id="@+id/playButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Play" /> ``` 接下来,你需要在MainActivity类中获取playButton元素并为其添加一个单击监听器。在监听器中,你可以调用loadMusicFile()方法以及MediaPlayer对象的start()和pause()方法。 ```java Button playButton = findViewById(R.id.playButton); playButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (!mediaPlayer.isPlaying()) { loadMusicFile(); mediaPlayer.start(); playButton.setText("Pause"); } else { mediaPlayer.pause(); playButton.setText("Play"); } } }); ``` 现在,当用户单击playButton时,你的应用程序将开始播放音乐。当音乐播放完成时,onCompletion()方法将被调用,因此你可以在其中添加逻辑以在播放完成后执行一些操作。 这只是一个简单的示例,你可以根据自己的需要进行修改和扩展。希望这可以帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值