Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.05.2013, 14:37
Интересующийся
Отправить личное сообщение для Zzepish Посмотреть профиль Найти все сообщения от Zzepish
 
Регистрация: 14.05.2013
Сообщений: 25

Не работает 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);

	

});
Ответить с цитированием
  #2 (permalink)  
Старый 16.05.2013, 15:31
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

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

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

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

...и еще зря ты новую тему создал
Ответить с цитированием
  #3 (permalink)  
Старый 16.05.2013, 15:51
Интересующийся
Отправить личное сообщение для Zzepish Посмотреть профиль Найти все сообщения от Zzepish
 
Регистрация: 14.05.2013
Сообщений: 25

Думаешь- и в той бы было норм?) я просто не знаю порядков на этом форуме) но учту.
На тему duration- у меня вся музыка воспроизводится одинаково. Но с одной- прокатывает, с другой нет(
Вот, сам глянь http://178.165.23.246/
Ответить с цитированием
  #4 (permalink)  
Старый 16.05.2013, 16:24
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

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

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

Последний раз редактировалось NoResponse, 16.05.2013 в 16:26. Причина: дополнил
Ответить с цитированием
  #5 (permalink)  
Старый 16.05.2013, 17:07
Интересующийся
Отправить личное сообщение для Zzepish Посмотреть профиль Найти все сообщения от Zzepish
 
Регистрация: 14.05.2013
Сообщений: 25

Я только что проверил currentTIme. При смене позиции музыки не меняется значение, если добавляю музыку- тоже все гуд. А есть песня- где не показывает время(
Ответить с цитированием
  #6 (permalink)  
Старый 16.05.2013, 17:59
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

music[0].src="...."
music[0].preload = 'metadata'; //auto
music[0].load();
music[1].src="...."
music[1].preload = 'metadata'; //auto
music[1].load();
Ответить с цитированием
  #7 (permalink)  
Старый 16.05.2013, 18:15
Интересующийся
Отправить личное сообщение для Zzepish Посмотреть профиль Найти все сообщения от Zzepish
 
Регистрация: 14.05.2013
Сообщений: 25

Спасибо! буду тестить
Ответить с цитированием
  #8 (permalink)  
Старый 16.05.2013, 18:47
Интересующийся
Отправить личное сообщение для Zzepish Посмотреть профиль Найти все сообщения от Zzepish
 
Регистрация: 14.05.2013
Сообщений: 25

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

Последний раз редактировалось Zzepish, 16.05.2013 в 19:25.
Ответить с цитированием
  #9 (permalink)  
Старый 16.05.2013, 19:23
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

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

Последний раз редактировалось NoResponse, 16.05.2013 в 19:25.
Ответить с цитированием
  #10 (permalink)  
Старый 16.05.2013, 19:54
Интересующийся
Отправить личное сообщение для Zzepish Посмотреть профиль Найти все сообщения от Zzepish
 
Регистрация: 14.05.2013
Сообщений: 25

не сработало
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена значения в store страно работает I3ev ExtJS 0 09.12.2012 14:22
Метод duration() для <video> некорректно работает в Опере Zachary Opera, Safari и др. 0 10.08.2012 12:15
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59