Android多媒体——媒体start流程分析(十三)

        当多媒体的数据源准备好,并且完成调用准备结束流程后,接下来就开始是调用 start() 方法开始播放媒体了。这里我们就来分析一下媒体开始播放的整个流程。

一、媒体播放流程

        对于媒体播放流程的 Java 层和 JNI 层与前面的示例基本相同,这里不再重复展示了,我们直接从 mediaplayer.cpp 中的 start() 方法开始分析。

1、mediaplayer.cpp

源码位置:/frameworks/av/media/libmedia/mediaplayer.cpp

status_t MediaPlayer::start()
{
    ALOGV("start");
    ……
    if (mCurrentState & MEDIA_PLAYER_STARTED) {
        ret = NO_ERROR;
    } else if ( (mPlayer != 0) && ( mCurrentState & ( MEDIA_PLAYER_PREPARED |
                    MEDIA_PLAYER_PLAYBACK_COMPLETE | MEDIA_PLAYER_PAUSED ) ) ) {
        mPlayer->setLooping(mLoop);
        mPlayer->setVolume(mLeftVolume, mRightVolume);
        mPlaye

你可能感兴趣的:(Android多媒体,android,多媒体)