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;
}