android (14)

来源:互联网 发布:北京seo教学 编辑:程序博客网 时间:2024/05/21 07:11
 

 

android (14)

 

status_t OMXClient::connect() {
    sp<IServiceManager> sm = defaultServiceManager();
    sp<IBinder> binder = sm->getService(String16("media.player"));
    sp<IMediaPlayerService> service = interface_cast<IMediaPlayerService>(binder);

    CHECK(service.get() != NULL);

    mOMX = service->getOMX();
    CHECK(mOMX.get() != NULL);

    return OK;
}

问问 服务,组件准备好了吗? 没准备就赶紧


MediaRecorderClient::MediaRecorderClient(const sp<MediaPlayerService>& service, pid_t pid)
{
    LOGV("Client constructor");
    mPid = pid;

    char value[PROPERTY_VALUE_MAX];
    if (!property_get("media.stagefright.enable-record", value, NULL)
        || !strcmp(value, "1") || !strcasecmp(value, "true")) {
        mRecorder = new StagefrightRecorder;
    } else
#ifndef NO_OPENCORE
    {
        mRecorder = new PVMediaRecorder();
    }
#else
    {
        mRecorder = NULL;
    }
#endif

    mMediaPlayerService = service;
}

MediaRecorderClient 选择是 PVMediaRecorder 还是 StagefrightRecorder

 

    OMXClient client;
    CHECK_EQ(client.connect(), OK);

    sp<MediaSource> encoder = OMXCodec::Create(
            client.interface(), enc_meta,
            true /* createEncoder */, cameraSource);
    if (encoder == NULL) {
   
    故事大约发生在冬季 OMXClient 和OMXCodec 遇见了
   
    sp<MediaSource> OMXCodec::Create(
        const sp<IOMX> &omx,
        const sp<MetaData> &meta, bool createEncoder,
        const sp<MediaSource> &source,
        const char *matchComponentName,
        uint32_t flags)