我的音频从服务器获取,但是当我点击我的音频按钮时,会显示“未定义的音频”

时间:2018-06-15 12:38:48

标签: javascript audio

我有一个音频按钮,应该从服务器获取音频然后“显示”它。我做了console.log()并且它从服务器获取,但是当我点击音频按钮时它不会播放。当我点击音频按钮时,我的console.log()会出现错误:

“未捕获的TypeError:无法读取未定义的属性'toLowerCase”

第127行是给出的错误,这是第127行:

var foundID = MEDIAARRAY.audio.lowercase.indexOf($(this).parent().find
('.exerciseWord').html().toLowerCase() + '.mp3')

我使用的全局变量:

var MEDIAARRAY;
var WORDS;
var audioArray;
var audio = new Audio();

这是完整的代码:

$(document).on("click", ".sound", function () {
console.log(audioArray);
 var foundID = MEDIAARRAY.audio.lowercase.indexOf($(this).parent().find('.exerciseWord').html().toLowerCase() + '.mp3')
 var currentVal = $(this).parent().find('.fa-volume-up');
    if (foundID > -1) {
        var audio = new Audio();
        audio.src = 'TheServerWhereTheAudioIsBeingFetchedFrom' + MEDIAARRAY.audio.path + MEDIAARRAY.audio.files[foundID] + '';
        audio.play();
    }
});

https://medium.com/@sarahelson81/uncaught-typeerror-cannot-read-property-of-undefined-in-javascript-c81e00f4a5e3我读过这篇文章,它基本上说:如果脚本遇到未定义的变量,它将抛出错误,但我该如何定义toLowerCase?它只会将字母更改为lowerCase。那么错误引用的是什么?在完整的代码之前我有这个(不确定这是否有用,但也许它是一个密钥?如果没有,请编辑并取出它,因为我不确定它是否非常有用。)

function getFileArray(param)
{

var request = {
    language: param
};

$.ajax(
{
    url: "TheUrlThatMakesConection",
    type: "POST",
    async: true,
    data: request,
    dataType: 'json',
}).done(function (response)
{
    console.log(response)
    MEDIAARRAY = response;
    audioArray = response.audio;
    //console.log(audioArray);


});
}

0 个答案:

没有答案