мои звуки javascript не будут воспроизводиться в Windows XP?

new Audio('sounds/mysound.mp3').play();

Я использую приведенный выше javascript для воспроизведения звуков в веб-проекте, все отлично работает дома на моем ноутбуке под управлением Windows 7, проверено как в Firefox, так и в Google Chrome.

У меня проблема в том, что в Windows XP звуки вообще не воспроизводятся? Я понимаю, что поддержка вышеперечисленного в браузерах на данный момент немного отрывочна, поскольку mp3, по-видимому, не полностью поддерживается, например, в Firefox ... так что я немного запутался ?? почему он воспроизводится на моей машине с Windows 7, но не на машинах с Windows XP, даже в том же браузере?

Возможно, мне придется взглянуть на создание звуков с помощью плагина или чего-то еще, может ли jPlayer воспроизводить звуки без видимых значков проигрывателя и т. Д., Поскольку все демонстрации показывают какую-либо форму проигрывателя на экране?

Любая помощь приветствуется.

Спасибо, Пол.

РЕДАКТИРОВАТЬ*** Я думаю, что если файлы OGG будут работать, мне нужно будет иметь оба формата звуковых файлов в моей папке звуков, а затем использовать переменную javascript, чтобы добавить .ext требуется в зависимости от того, какой браузер используется.

check which browser
extVariable = either '.mp3' or '.ogg' accordingly
new Audio('sounds/mysound'+extVariable).play();

Таким образом, мне не нужны операторы if else каждый раз, когда я хочу вызвать звук :), просто установите переменную .ext вверху страницы.

я сделал следующий звуковой тест на http://codepen.io/PaulBrUK1972/full/pGdza и, как я и думал, используя Windows XP, файл ogg будет воспроизводиться в Firefox, а mp3 - нет. Было бы интересно узнать, воспроизводится ли mp3 на других машинах с Windows 7, как на моей, хотя не должно??


person Paul 501    schedule 19.11.2013    source источник
comment
Это только Firefox или он также не работает в Chrome/IE в Windows XP?   -  person epascarello    schedule 19.11.2013
comment
Честно говоря, я давно не тестировал его на Windows XP, которая работала на 3 или 4 компьютерах, но, если я правильно помню, я уверен, что он не работал в Chrome и Firefox.   -  person Paul 501    schedule 19.11.2013
comment
Я нахожу все это немного странным, что Firefox не совместим с .mp3, но он отлично воспроизводит звуки mp3 на моей машине с Windows 7 в Firefox?? Уму непостижимо??   -  person Paul 501    schedule 19.11.2013
comment
@Paul501, какой ответ на машине в консоли: document.createElement("audio").canPlayType("audio/mp3")   -  person megawac    schedule 20.11.2013


Ответы (3)


Firefox полагается на кодекс, доступный на машине, для воспроизведения mp3, чтобы обойти проблемы с лицензированием, поэтому это может вызвать проблемы.

Если вы ищете звуковую библиотеку, чтобы абстрагироваться от проблем поддержки звука в браузерах с поддержкой переменных, я бы рекомендовал SoundJS, в разработке которого я помогаю. Он использует новейшие аудиостандарты, если они доступны, и имеет резервную копию флэш-памяти для старых браузеров и систем. Используя SoundJS, вы можете написать единую кодовую базу, которая широко поддерживается, в том числе на мобильных устройствах.

Надеюсь, это поможет.

person OJay    schedule 20.11.2013
comment
Привет, да, с тех пор как я узнал, что Firefox использует операционную систему на Windows 7+, чтобы обеспечить поддержку воспроизведения mp3, что объясняет проблему. я проверю SoundJs, когда у меня будет шанс, но я думаю, что я решил проблему, как описано выше, проверив, какой тип файла поддерживается в браузере, а затем используя переменную javascript, чтобы установить расширение файла на .ogg или .mp3 в функции play() соответственно. - person Paul 501; 22.11.2013

Internet Explorer 9+   can play:  MP3
Firefox 3.6+           can play:  WAV and OGG
Chrome 3+              can play:  MP3 and OGG
Safari  4+             can play:  MP3 and WAV
Opera 9.5+             can play:  WAV and OGG

Выше приведен список типов музыкальных файлов, которые можно воспроизводить в данном браузере, это то, что я взял из книги Pro HTML5 Games - Aditya Ravi Shankar. Это хорошая книга, я все еще работаю над ней. Если браузер не вызывает проблем, проверьте следующее: Убедитесь, что у вас подключены динамики/гарнитура/наушники. Убедитесь, что громкость не слишком низкая. Убедитесь, что на вашем ПК работает другой звук, воспроизведите трек на YouTube или в каком-нибудь медиаплеере. Проверьте настройки звука/громкости и отрегулируйте настройки, возможно, вы отправляете звук не на те каналы. Убедитесь, что у вас установлена ​​последняя версия звукового драйвера. Если это не работает, проверьте, не сломана ли ваша звуковая карта.

person tommy knocker    schedule 19.11.2013
comment
Я, очевидно, проверил, работает ли звук на компьютерах с Windows XP, прежде чем проводить тесты. - person Paul 501; 19.11.2013
comment
Я не пытаюсь быть снисходительной, Пол, я пытаюсь записать все возможности, чтобы у вас был список того, что вы можете вычеркнуть из списка. Иногда лучше не делать предположений о том, что автор сделал до сих пор. - person tommy knocker; 19.11.2013
comment
Я знаю, что ты не был, поэтому я не отметил тебя, извини, если я столкнулся с этим, это просто расстраивает, не могу прийти в себя. - person Paul 501; 19.11.2013
comment
Я также заметил одну вещь, вы должны попробовать использовать это var bulletAudioReady = false; var bulletAudio = новое аудио(); bulletAudio.onload = function(){ bulletAudioReady = true; }; bulletAudio.src = аудио/BulletShot(1).mp3; bulletAudio.play(); Таким образом, звук будет воспроизводиться только тогда, когда все загружено. - person tommy knocker; 19.11.2013
comment
У меня действительно нет таких проблем, как этот tommy, так как все написано на jquery и javascript и использует функцию document.ready, есть сотни звуков, которые можно воспроизводить в зависимости от того, что происходит в данный момент. - person Paul 501; 19.11.2013
comment
Я рекомендую вам затем попытаться преобразовать этот MP3 в OGG и WAV и попытаться использовать каждый из них. Вы можете использовать оператор if, чтобы проверить, что если 1 версия не может быть воспроизведена, то вместо нее будут воспроизводиться другие музыкальные файлы (if(hit.canPlayType === true){ hit.play(); } else{ bulletAudio.play(); }) если у вас все еще есть проблемы, рассмотрите возможность настройки звуковой карты. Также убедитесь, что размер самого музыкального файла больше 0b. Если после всего этого решение не найдено, попробуйте переустановить драйвер. - person tommy knocker; 19.11.2013
comment
Это Томми, яll have to do some tests with OGG as you suggest, and then use the if statement to pick between mp3 and OGG, hopefully that will address the issue, iбуду держать тебя в курсе. к счастью, есть только несколько или 2 звуковых триггера, хотя звук, который он воспроизводит, является динамическим, есть только небольшие звуки mp3, так что это снова может быть проблемой. - person Paul 501; 19.11.2013

Что делает большинство звуковых библиотек html5, таких как sm2, чтобы обойти тот факт, что некоторые браузеры поддерживать только определенные типы аудио — это вызов document.createElement("audio").canPlayType(type) перед созданием элемента audio для звука.

Поэтому я предлагаю вам создать вспомогательную функцию для создания ваших аудио звуков, которая может выглядеть примерно так (извините, если есть непроверенные ошибки):

var audioTypes = {
   "ogg": "audio/ogg",
   "mp3": "audio/mp3"//etc
}

//src is an array of sources for a type
var createAudio = function(src, options) {
    var audio = document.createElement("audio");
    for (var i = 0; i < src.length; i++) {
        var type = src[i].slice(src[i].lastIndexOf(".") + 1);
        if(audio.canPlayType(audioTypes[type]) {
            audio.type = audioTypes[type];
            audio.src = src[i];
            return audio;
        }
    }
    throw "Unsupported audio";
}

Теперь просто позвони

var mySound = createAudio(["sounds/mySound.ogg", "sounds/mySound.mp3"]);
person megawac    schedule 20.11.2013