Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не работает currentTime. duration infinity (https://javascript.ru/forum/events/37990-ne-rabotaet-currenttime-duration-infinity.html)

Zzepish 16.05.2013 14:37

Не работает currentTime. duration infinity
 
currentTime не задает время? когда я указываю .currentTime=0;
И еще- у одной песни .duration показывает, а у другой выдает infinity/
Вот код:
$(function(){
	music_count=0;
	function duration_min_sec(sec){

		minutes=Math.floor(sec/60);
		seconds=Math.floor(sec-(minutes*60));
		if(seconds<10) seconds="0"+seconds;
		if(minutes<10) minutes="0"+minutes;
		return minutes+" : "+seconds;
	}

	$("div.player div.controls span").click(function(){
		controls_btn=$(this).attr("id");

		switch (controls_btn){
			
			case "play":
				music[music_count].play();
				$("#length").html(duration_min_sec(music[music_count].duration));
				$("div.player div.controls span#play").css({'visibility':'hidden'});
				$("div.player div.controls span#pause").css({'visibility':'visible'});
			break;
			
			case "pause":
				music[music_count].pause();
				$("div.player div.controls span#play").css({'visibility':'visible'});
				$("div.player div.controls span#pause").css({'visibility':'hidden'});
			break;
			
			case "stop":
				    music[music_count].pause(); /////вот тут
                                     music[music_count].currentTime=0;
					//music[music_count].load();
					$("div.player div.controls span#play").css({'visibility':'visible'});
					$("div.player div.controls span#pause").css({'visibility':'hidden'});
			break;
			
			case "vol_up":
				music[music_count].volume+=0.1;
			break;
			
			case "vol_down":
				music[music_count].volume-=0.1;
			break;
			
			case "back":
				if(music[music_count].playbackRate>1)
					music[music_count].playbackRate=1;
				else
					music[music_count].playbackRate-=0.1;
			break;
			
			case "forward":
				if(music[music_count].playbackRate<1)
					music[music_count].playbackRate=1;
				else
					music[music_count].playbackRate+=0.1;
			break;
		
		}

		$('input[type="range"]').change(function(){
			music[music_count].volume=$('input[type="range"]').val()/10;
		});
	
	});
	
		music[music_count].addEventListener('ended',function(){
		music[music_count].pause();
		music[music_count].currentTime=0;
		music_count++;
		if(music_count>music.length-1) music_count=0;
		//alert(music_count);
		music[music_count].play();
		$('#sound_num').html(music_count+1);
	});
	function current_pl(){
		$('#place').html(duration_min_sec(music[music_count].currentTime));
	}
	setInterval(current_pl,100);

	

});

NoResponse 16.05.2013 15:31

duration - возвращает продолжительность ролика в виде числа с плавающей точкой в секундах. Если продолжительность ролика почему-то не удаётся получить, возвращается значение NaN. Для потоковых медиаресурсов возвращается значение Infinity. Доступно только для чтения.

а вообще почитай там http://www.thevista.ru/page13925-mul...eo&ratin gs=1

еще у тебя ошибка :)
строка
music[music_count].addEventListener('ended',function(){
равносильна
music[0].addEventListener('ended',function(){

...и еще зря ты новую тему создал :)

Zzepish 16.05.2013 15:51

Думаешь- и в той бы было норм?) я просто не знаю порядков на этом форуме) но учту.
На тему duration- у меня вся музыка воспроизводится одинаково. Но с одной- прокатывает, с другой нет(
Вот, сам глянь http://178.165.23.246/

NoResponse 16.05.2013 16:24

Цитата:

Сообщение от Zzepish
Но с одной- прокатывает, с другой нет(

если так, тогда скорее всего вот поэтому:
loadedmetadata - возникает после того, как веб-браузер получит значения продолжительности ролика и ширины и высоты его изображения. Возникает после события durationchange.
...
durationchange - возникает после того, как веб-браузер получит значение продолжительности загружаемого ролика. Возникает после события loadstart и перед событием loadedmetadata.
...
loadstart - возникает в самом начале процесса загрузки ролика. Это событие возникает самым первым.

тут хоть и о "роликах", но у аудио абсолютно тоже самое

Zzepish 16.05.2013 17:07

Я только что проверил currentTIme. При смене позиции музыки не меняется значение, если добавляю музыку- тоже все гуд. А есть песня- где не показывает время(

NoResponse 16.05.2013 17:59

music[0].src="...."
music[0].preload = 'metadata'; //auto
music[0].load();
music[1].src="...."
music[1].preload = 'metadata'; //auto
music[1].load();

Zzepish 16.05.2013 18:15

Спасибо! буду тестить

Zzepish 16.05.2013 18:47

не прокатило(
Но это единственное видео!
Кой чего проверил- косяки с файлами ogg. ПОчему- не знаю! Но в mp3 гуд (кроме 1-й песни)

NoResponse 16.05.2013 19:23

music[music_count].currentTime=0;
ставь сразу перед
music[music_count].play();

Zzepish 16.05.2013 19:54

не сработало

Zzepish 16.05.2013 23:43

И еще прикол- на currentTime матюкается опера.

Zzepish 17.05.2013 12:13

Кто знает- в чем проблема?

NoResponse 17.05.2013 13:45

проблема в том что делаешь что то не так, а вот что именно, никто не скажет
показывай код со всеми правками и описывай что не так

Zzepish 17.05.2013 17:54

Вот весь исходник

cyber 17.05.2013 19:27

Zzepish, возьми какуе то кроссбраузерную либу для хтмл 5 аудио, что типо этого http://kolber.github.io/audiojs/ или этого http://www.jplayer.org/ и не мучайся )

Zzepish 17.05.2013 21:08

У меня было 2 мечты, ради которых я начал изучать программирование! Это я хотел запилить мини-чат и аудио-плеер. И меня достало искать готовы решения (кривые и не понятные). По этому я начал изучать программирование и вышел на более-менее уровень. Так что только сам!

cyber 17.05.2013 21:21

Zzepish, ну так ты все равно используешь чужую реализацию, которую написали разработчики браузеров, так что пиши сразу на C++)
А если серьезно то что ты делаешь , в данный момент не подерживается
большим кол-во пользователе, который юзают ие 8-9 (если не ошибаюсь) , так что если хочешь что то нормальное пиши кроссбраузерную реализацию, к примеру javascript + flash (т.е если не поддерживаеться хтмл 5 браузером то юзать флеш)

Zzepish 17.05.2013 21:27

мне плевать на ie, 10 поддерживает ибо web kit! На все более ранние- фиолетово.
Мне и оперы хватает)

cyber 17.05.2013 21:29

Zzepish, если делаешь для себя то да, если делаешь за деньги...

Zzepish 17.05.2013 21:31

ВСЕМ пора понять, что IE- убог! И дать понять заказчику. Есть куча бесплатных более-менее адекватных браузеров! А на мелкософтвскую продукцию лучше забить

cyber 17.05.2013 21:35

Zzepish, да вот только пока за ие около 30%+ рынка то его заказчикам он будет важен)

cyber 17.05.2013 21:45

Zzepish, посмотри таблицу поддержки свойств внизу,
https://developer.mozilla.org/en-US/.../Element/audio
и можно посмотреть что некоторый функционал не поддерживает даже хром, и увидеть что с кроссбраузерностью проблемы не только ие..

Zzepish 17.05.2013 23:33

аааааааааа. Атрибут buffered в хроме не пашет, а я думаю- что за фигня)

cyber 18.05.2013 00:39

Zzepish, вот поэтому и начинают с прочтения документации)

Zzepish 18.05.2013 01:32

Не) только опыт, только хардкАр

cyber 18.05.2013 01:34

Zzepish, это не опыт , а метод научного тыка, со временем пройдет)

Zzepish 19.05.2013 13:15

со времени php еще не прошел)


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