Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблема с onended для chrome (https://javascript.ru/forum/events/28446-problema-s-onended-dlya-chrome.html)

С.Тарасов 20.05.2012 11:57

Проблема с onended для chrome
 
Добрый день!

Подскажите пожалуйста как правильно написать обработку события onended для Chrome.

В моём скрипте на этой странице
есть две функции:
function speek(){
	
		var id=id_speeker;
		try{
			if (speek_off==false || speek_off1==false){
				if (sp_paus==false && sp[nfonem]=='001'){
					next_sound();
				}else{
					$(id).autoplay=true;
					$(id).src='/pifiya/sound/'+sp[nfonem]+'.wav';
					$(id).onerror= function (){err_fonem(0)}
					$(id).onended=function(){next_sound()}
				}
			}
		}catch(e){}
	}

	//-------------------------------------------------------------------------------
	function next_sound(){
		nfonem++;
		if (sp.length==nfonem){
			end_speek()
		}else{
			speek();
		}
	}


Так вот строка :
$(id).onended=function(){next_sound()}
в chrome работать не хочет, хотя в Opere и Mozzile работает.

Пробовал так:
function chrom(){audio.addEventListener('ended', function(){next_sound();}, false);}
тоже ничего.

Как это поправить для chrome и заставить его бубнить? :)

vadim5june 20.05.2012 12:42

по моему в хроме они исключили возможность запуска из скрипта-только когда пользователь нажимает на play

С.Тарасов 20.05.2012 12:50

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

vadim5june 20.05.2012 12:53

Цитата:

Сообщение от С.Тарасов (Сообщение 175548)
да нет, он начинает проигрывать, как задумано, но после воспроизведения первого файла не начинает воспроизводить следующий.

а эти треки включены внутрь
<audio></audio>
то есть первый и следующий?

С.Тарасов 20.05.2012 13:03

Нет конечно. Они подгружаются по мере необходимости.
$(id).src='/pifiya/sound/'+sp[nfonem]+'.wav';


id - это тег audio.

vadim5june 20.05.2012 13:34

Эта тема меня сейчас сильно интересует поэтому если найдете решение напишите здесь плиз
Попробуйте добавить после
next_sound();audio.play()

С.Тарасов 20.05.2012 13:40

Хорошо, если решу напишу это решение.

С.Тарасов 20.05.2012 14:19

Цитата:

Сообщение от vadim5june (Сообщение 175560)
... next_sound();audio.play()

не хочет.

Chrome воспроизводит первый файл и всё, т.е. после окончания воспроизведения не происходит событие onended, а следовательно и его обработка.

vadim5june 20.05.2012 14:31

ну я вот здесь сделал вроде работает посмотрите
http://all-html5.narod.ru/2/audio2.htm

С.Тарасов 20.05.2012 14:38

Спасибо. Попробую. Отвечу немного позже.


Часовой пояс GMT +3, время: 00:51.