android sniff方法的信心是什么意思?

时间:2011-07-23 06:44:57

标签: android android-ndk

所有

在DataSource :: sniff方法中获取置信度值。 那么信心的含义是什么?怎么理解呢? 当它的值大于或等于0.6f时,意味着找到了嗅觉。但在SniffMP3函数中,置信度设置为0.2f。为什么呢?

    bool DataSource::sniff(
        String8 *mimeType, float *confidence, sp<AMessage> *meta) {
    *mimeType = "";
    *confidence = 0.0f;
    meta->clear();

    Mutex::Autolock autoLock(gSnifferMutex);
    for (List<SnifferFunc>::iterator it = gSniffers.begin();
         it != gSniffers.end(); ++it) {
        String8 newMimeType;
        float newConfidence;
        sp<AMessage> newMeta;
        if ((*it)(this, &newMimeType, &newConfidence, &newMeta)) {
            if (newConfidence > *confidence) {
                *mimeType = newMimeType;
                *confidence = newConfidence;
                *meta = newMeta;
                if(*confidence >= 0.6f) {
                    LOGV("Ignore other Sniffers - confidence = %f , mimeType = %s",*confidence,mimeType->string());
                    break;
                }
            }
        }
    }

    return *confidence > 0.0;
 }

1 个答案:

答案 0 :(得分:1)

我认为它只会寻找文件的最佳解析器。如果

((*it)(this, &newMimeType, &newConfidence, &newMeta))

返回true,它已经是该文件的解析器。但是,可能存在一个案例,即该文件有超过1个解析器,因此它只会寻找最佳解析器。