Android 平台通过其内置的 MediaPlayer 类为开发者提供了强大的多媒体处理能力,使得集成音频和视频播放变得简单直接。这里我们就来看一下 MediaPlayer 的创建流程。
一、创建流程
在 App 中,MediaPlayer 的创建不论是通过 new MediaPlayer() 还是通过 MediaPlayer.create() 来实现的,他们最终都是会调用 MediaPlayer(int sessionId) 构造函数,这里的 sessionId 用于指定音频会话 ID,通常用于音频管理(如音量控制或音频焦点)。下面我们就从这里开始分析。
1、MediaPlayer
源码位置:/frameworks/base/media/java/android/media/MediaPlayer.java
private MediaPlayer(int sessionId) {
super(new AudioAttributes.Builder().build(),
AudioPlaybackConfiguration.PLAYER_TYPE_JAM_MEDIAPLAYER);
// 初始化事件处理器,用于处理异步事件(如播放完成、错误等)
Looper looper;
if ((looper = Looper.myLooper()) != null) {
mEventHandler = new E