Javascript.RU

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

Нужна помощь в создании простого АУДИО ПЛЕЕРА!
Привет

Надеюсь, здесь найду помощь!
Я пытаюсь создать простой аудиоплеер на html5 и jQuery.

Принцип работы придумал такой: создаю аудио элемент, добавляю к нему источники со ссылками, средствами jQuery управляю им. Когда нужно проиграть другой файл - меняю ссылку в источнике.

Когда хочу проиграть один файл/поток либо когда сам кликаю по файлам в СВ (списке воспроизведения), то мой плеер работает хорошо. Но мне нужно, чтобы он мог проиграть весь СВ, чтобы все файлы прозвучали один за другим автоматически.

Я не силен в Javascript... Попытался реализовать это с $.each(), также попытался создать рекурсивную функцию... но... без успешно!

Могу показать часть кода:

var el = $('#playerbox'); // это <div> в котором создам плеер...
var soundType = el.data('page-soundtype');
var soundFile = el.data('page-soundfile');
var soundFiles = el.data('page-soundfiles');//playlist, paths to sources
var audio = $("<audio preload />");
//make 2 types of sources for different browsers:
var source1= $('<source />').attr('type', 'audio/mpeg');  // original, mp3 format
var source2= $('<source />').attr('type', 'audio/ogg'); // a copy, ogg format
audio.append(source1).append(source2);
el.append(audio);
var player=audio[0];
player.volume=0;
var i=0; //The play list counter, in case we have it
var op={}; //player options

var runPlayer = function(op){
    var fadetime = (op.fadetime || 1000);
    player.oncanplay = function(){
        player.play();
        audio.animate({volume: 1}, fadetime);
    }
    if(soundType === 'list'){
        player.addEventListener('ended', function(){
            i++;
            if(soundFiles[i].length>0){
                source1.attr('src', soundFiles[i]);
                source2.attr('src', soundFiles[i].replace(".mp3", ".ogg"));
                op.fadetime = 1500;
                player.pause();
                runPlayer(op);
            }
        }, false)
       }
}
//set sources
if(soundType==='list' && $.isArray(soundFiles)){
    //prepare playlist
    source1.attr('src', soundFiles[i]);
    source2.attr('src', soundFiles[i].replace(".mp3", ".ogg"));
    op.fadetime = 1;            
}
else if(soundType==='sound'){
    //prepare sound
    source1.attr('src', soundFile);
    source2.attr('src', soundFile.replace(".mp3", ".ogg"));
}
runPlayer(op);


Так, мой плеер проигрывает первый файл из СВ, загружает второй в "src" плеера, но не проигрывает его... С помощью консоли определил, что второй файл загружается в 'src', но все что внутри player.oncanplay = function(){ } - при втором вызове уже не срабатывает...


Помогите разобраться...
Благодарю.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 21:33
Нужна помощь: Slider wheel Alex555 Мобильный JavaScript 0 15.05.2013 17:06
Нужна помощь по слайдеру seoguru Работа 3 28.01.2013 20:02
нужна помощь в создании страницы с JavaScrip vikulin11 Общие вопросы Javascript 4 22.05.2011 23:26
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 01:17