0

このコードがあり、それが魅力のように機能する場合、最初の結果の後、in_array 関数は「false」のみを返します。問題が見つかりません。認識を再開するたびに、1つのフレーズに対して機能します...

var myArray = [
    'Kontakt', 
    'gehe zu Kontakt', 
    'navigiere zu Kontakt', 
    'navigiere zu Kontakte'
];

function in_array(needle, haystack, argStrict) 
{
    var key = '',
    strict = !! argStrict;
    if (strict) 
    {
        for (key in haystack) 
        {
            if (haystack[key] === needle) 
                return true;
        }
    } 
    else 
    {
        for (key in haystack) 
        {
            if (haystack[key] == needle)
                return true;
        }
    }

    return false;
};

recognition.onresult = function (event) 
{
    var pos = textArea.getCursorPosition() - interimResult.length;
    textArea.val(textArea.val().replace(interimResult, ''));
    interimResult = '';
    textArea.setCursorPosition(pos);
    for (var i = event.resultIndex; i < event.results.length; ++i) 
    {
        if (event.results[i].isFinal) 
        {
            insertAtCaret(textAreaID, event.results[i][0].transcript);
            speak = event.results[i][0].transcript;
            index = in_array(speak,myArray,false);
            alert(speak);
            alert(in_array(speak,myArray,false));
            if (index) 
            {
                alert(event.results[i][0].transcript);
            }
            else 
            {
                alert('Keine Übereinstimmung');
            }
        } 
        else 
        {
            isFinished = false;
            insertAtCaret(textAreaID, event.results[i][0].transcript + '\u200B');
            interimResult += event.results[i][0].transcript + '\u200B';
        }
    }
};

jsfiddle をテストする場合: http://jsfiddle.net/p3Fxc/

4

0 に答える 0