android录音或者录像时,决定是使用stagefright还是opencore框架的代码实现位于MediaRecorderClient类中,代码实现如下:
- 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; // 如果定了stagefright属性,则使用stagefright
- } else
- #ifndef NO_OPENCORE
- {
- mRecorder = new PVMediaRecorder(); // 如果没有定义stagefright属性,并且没有定义NO_OPENCORE,则使用opencore
- }
- #else
- {
- mRecorder = NULL; // 两者都没有定义,则返回NULL
- }
- #endif
- mMediaPlayerService = service;
- }