Android多媒体开发【5】-- Stagefright原来是个皮包公司

通过上文我们已经进入到了StagefrightPlayer中,当满心激动的查看代码时发现 Stagefright其实就是个皮包公司

status_t StagefrightPlayer::setDataSource(
        const char *url, const KeyedVector<String8, String8> *headers) {
    return mPlayer->setDataSource(url, headers);
}
status_t StagefrightPlayer::prepare() {
    return mPlayer->prepare();
}
status_t StagefrightPlayer::start() {
    ALOGV("start");

    return mPlayer->play();
}

status_t StagefrightPlayer::stop() {
    ALOGV("stop");

    return pause();  // what's the difference?
}

status_t StagefrightPlayer::pause() {
    ALOGV("pause");
    return mPlayer->pause();
}

功能几乎都是通过调用 

AwesomePlayer *mPlayer;
成员变量来实现的,看来真正实现播放器功能的原来是  AwesomePlayer。Stagefright只是做了一层浅浅的封装,革命尚未成功,继续跟进吧。

AwesomePlayer 看看这个棒极了的(Awesome)播放器到底有多牛逼。


你可能感兴趣的:(android,String,url)