У нас много проблем с нашим программным обеспечением (которое в основном используется в школах) и брандмауэрами: мы используем mp3-файлы в наших ресурсах, а mp3-файлы блокируются во многих школьных брандмауэрах.Я пытаюсь написать код js, чтобы определить, когда это происходит, чтобы мы могли предупредить пользователя (преподавателей) о том, чтобы поговорить с его отделом ИТ и разблокировать его.
Сначала я пошел по пути, пытаясьсыграть короткую mp3 тишину и определить, произошло ли это.Но вам нужно перепрыгнуть через столько обручей, чтобы автоматически воспроизводить аудио, особенно в iOS Safari - в ожидании взаимодействия с пользователем и т. Д., Чтобы материал, запрыгивающий через обруч, просто мешал тестам и заставлял код думать, что mp3-файлы былибыть заблокированными, когда их фактически не позволяли воспроизвести браузер, а не сеть.
Итак, я отказываюсь от идеи проигрывания mp3.Вместо этого я хочу запросить небольшой mp3-файл по сети, а затем проанализировать содержимое ответа, чтобы убедиться, что это действительно mp3-файл, а не, скажем, HTML-страница с надписью «Извините,контент заблокирован ", или что-то еще, что брандмауэры могут вернуть, когда кто-то просит заблокированный файл.
Я не могу даже подумать, какой самый простой способ сделать это, который будет работать в кросс-браузерном режиме.Я использую jQuery, и я подумал, что смогу что-то сделать в блоке «success» ajax-вызова jQuery, чтобы проанализировать возвращаемые данные и убедиться, что это mp3-файл.
Первое, что я подумал, это просто вытащить данные в div на странице, вот так:
var url = "/assets/test_media_files/silence.mp3?t="+Math.random();
$("#content-test-file-data").load(url, function(){
console.log("loaded data");
});
Это работает, и у меня груз бинарных данных в#content-test-file-data
дел.Но как я могу определить, является ли это mp3-файлом?Есть ли лучший способ сделать это?Нужно ли запрашивать данные типа mime или что-то в этом роде?спасибо