2016-09-28 3 views
0

У меня возникли проблемы с этой функцией яваскриптафункция Javascript играет неправильно аудиофайл

function playaudio(p){               
    sound.pause(); 
    $("#audiovoix")[0].currentTime = 0; 
    $("#audiovoix").attr("src", "fiches_visite/"+id+"/audio/"+p+"_FR.mp3"); 
    console.log("fiches_visite/"+id+"/audio/"+p+"_FR.mp3"); 
    sound.load(); 
    sound.play(); 
    sound.onerror = function() { 
     console.log("fichier introuvable"); 
     itvl = setTimeout(function() { 
     $('#slider_suivant').trigger('click'); }, tempo); 
    };          
} 

Эта функция вызывается в ползуне изображения, и р является идентификатором внутр. Он изменяет звуковой тег src, воспроизводит его или запускает щелчок, если возвращается ошибка (я не использую ajax, чтобы проверить, существует ли файл специально).

Проблема в том, что файл фактически не существует, он извлекает другой файл в папке и воспроизводит его. Он должен просто вернуть ошибку, но это не так ... Почему другой файл, который я не просил, воспроизводится? Как этого избежать?

Моя аудио папка что-то вроде: 1_FR.mp3, 3_FR.mp3 и т.д.

Благодаря

+0

Что говорит ваш console.log, когда он воспроизводит неправильный файл? –

+0

Правильный файл указан в console.log –

+0

Вы сказали, что файл воспроизводится, даже если его не существует. Какой файл воспроизводится, если файл клика не существует? Опубликуйте вывод консоли, если он ошибочен. –

ответ

0

Кажется, проблема кэша, я, наконец, нашел решение по этой теме HTML5 Audio. Replacing Element still the same audio file (cached) how to solve?

В моем коде я просто добавил аргумент после аудиофайла, и он решил проблему.

$("#audiovoix").attr("src", "fiches_visite/"+id+"/audio/"+p+"_FR.mp3?cache-buster=" + new Date().getTime()); 

 Смежные вопросы

  • Нет связанных вопросов^_^