2012-04-04 5 views
3

Я работаю в компании и пытаюсь создать новую демонстрационную страницу. Мне бы очень хотелось опуститься на страницу, чтобы точно не работать, но, к сожалению, она привязана ко многим сценариям на моем сервере, а также к запросам AJAX, которые должны переходить к одному и тому же доменному имени. Я расскажу о происходящем как можно скорее.HTML5 audio cross browser comtability

По сути, мой код сеанса работает почти так, как ожидалось. Это не то, где проблемы лежат. Проблема в том, что звук, воспроизводимый после нажатия кнопки «Скажи это», работает так же, как ожидалось в Chrome, но firefox воспроизводит только первый аудиозапись, даже после последующих с другим текстом, и ничто не воспроизводится в Internet Explorer. Соответствующий код находится в главном разделе, где группа из трех функций контролирует все происходящее. formSubmit() вызывается, когда нажата кнопка «Say It», onAudioLoad() вызывается после того, как звук был загружен, а limitText() делает, ну, это ограничивает количество текста, которое люди могут вставить.

So formSumbmit() посылает запрос AJAX на мой сервер скрипт, который возвращает один из двух вещей:

1) HTML5 аудио тег с исходными элементами с правильной ЦСИ атрибуты или 2) р элемент о том, что ваша сессия истекла.

Я просто пытаюсь воспроизвести звук без ужасного эха (который может быть или не быть вызван фактическим программным обеспечением для преобразования mp3/ogg) и заставить его работать как ожидается во всех браузерах.

onAudioLoad посылает запрос на удаление аудио, чтобы избежать людей красть наш продукт слишком легко: D

Ожидаемое поведение:

Независимо текст присутствует в демо текстовой области будет отправлено на стороне сервера в быть синтезированным, а затем звук будет воспроизводиться через динамики клиента.

Если у вас возникнут какие-либо дополнительные вопросы, я периодически буду проверять их здесь.

Вот URL демки:

http://www.cepstral.com/demos/temp/cepstral_tts_demo.php

Спасибо за все и вся помощь.

Окончательный Вопрос:

Почему эта работа, как ожидается, в Chrome, но не в Firefox 11 и IE9?

В firefox он будет воспроизводить только первый запрос звука.

В IE9 звук не воспроизводится.

Я знаю, что звук никогда не будет в безопасности. Мы просто пытаемся сделать его более трудным для обычных пользователей.

+0

«Я просто пытаюсь воспроизвести звук без ужасного эха». Вы тестировали файлы за пределами браузера? – PeeHaa

+0

«onAudioLoad отправляет запрос на удаление аудио, чтобы люди не слишком легко крали наш продукт». Вы знаете, что все, что вы отправляете клиенту, уже вышло из ваших рук? – PeeHaa

+0

Я добавил более четкий вопрос о том, что происходит. Я думал, что с самого начала все ясно, но, конечно, каждый всегда понимает, что их собственное письмо проще всего. – thatidiotguy

ответ

2

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

При попытке изменить текст в FF и запросить новый звуковой файл он по-прежнему воспроизводит старый звук. Проверяя запросы и ответы, похоже, что вы всегда отвечаете с тем же именем (для аудиофайла), хотя сам звук отличается.

Загружая этот звуковой файл или открывая его на новой вкладке и обновляя его без кеша, он воспроизводит правильный звук (с новым текстом), поэтому я уверен в кешировании.

Вы должны найти способ вернуть уникальные имена файлов для разных текстов, чтобы браузер не воспроизводил кешированные версии.

То же самое относится к тестированию на IE на моей машине.

EDIT О.П.

Хотел добавить, что причина, она не работает на моем IE, кажется, что я использую для Windows 7 N. Учтена в примечаниях к версии IE9 является тот факт, что Windows 7 N требует специальных обновлений для воспроизведения видео в формате HTML5. Они не упоминают звук HTML5, но я полагаю, что это проблема.