Вход

Просмотр полной версии : Не работает currentTime. duration infinity


Zzepish
16.05.2013, 14:37
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-multimedia_v_stile_html_5_tegi_audio_i_video&ratings=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
Но с одной- прокатывает, с другой нет(
если так, тогда скорее всего вот поэтому:
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
Вот весь исходник (http://zzepsite.com/audio.rar)

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/docs/Web/HTML/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 еще не прошел)