2013-12-23 4 views
1

У меня возникли проблемы с HTML5 Audio в Android Browser. Мне нужно воспроизвести тот же звук, 9 раз. Который отлично работает в первый раз, когда я их играю, потому что создает 9 звуковых объектов. Возможно, он не идеален, но он работает ... по крайней мере, я думал, что это так.Воспроизведение звуков в мобильном браузере Android

Это, как я это сделать:

var setSounds = function(){ 
    Sounds[0] = new x.Sound(); 
}; 

А потом я играю звук так:

 Sounds[0].play(); 

Я попытался следующие

 Sounds.[0].pause(); 
     Sounds.[0].play(); 

И

 Sound.[0].currentTime = 0; 

У меня есть больше звуков, то это просто, но, чтобы дать вам идею. Он воспроизводит все звуки правильно в первый раз, но во второй раз я хочу воспроизвести все звуки, его молчание. Эта проблема возникает только в браузере Android.

Воспроизведение всех 9 звуковых объектов в первый раз - Идеальный

Воспроизводятся 9 звуковые объекты снова - Бесшумный

Как я могу играть мои звуковые объекты снова? Любые советы или решения приветствуются.

+1

ли вы попробовать сделать что-то вроде искать (0), прежде чем ваши звонки играть()? Я не уверен, что это эквивалентно установке currentTime = 0. Кроме того, вы можете повторить? Это помогает? – Matt

+0

Мэтт - Спасибо за ответ. Я попытался найти() сейчас, и никаких изменений. Я не могу использовать повтор, потому что звуки воспроизводятся на пользовательских touchevents. Я получил 9 ящиков, я хочу, чтобы пользователь нажимал на них, но это может быть 30 секунд или 2 минуты между первыми 9 звуками и вторыми 9 звуками. –

+0

Попробуйте повторно инициализировать все звуки после каждого нажатия? после вызова звуков [i] .play, затем снова вызовите setSounds()? Это немного расточительно, но до тех пор, пока setSounds быстро, должен работать ... – Matt

ответ

1

Самый простой способ - повторная инициализация звука после его воспроизведения.

Вызвать звук [0] .play(), затем вызвать setSounds(). Если вы беспокоитесь о накладных расходах в воссоздающих всех звуках, вы можете просто повторно инициализировать один звук:

Sounds[0].play(); 
Sounds[0] = new x.Sound(); 
+0

Спасибо, я приму этот ответ. Это может быть не лучший вариант для меня, но он решает проблему. большое спасибо –

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