Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как осуществить переключения композиции (audio)? (https://javascript.ru/forum/misc/55563-kak-osushhestvit-pereklyucheniya-kompozicii-audio.html)

Amator 04.05.2015 16:12

Как осуществить переключения композиции (audio)?
 
Подскажите пожалуйста как сделать чтобы после завершении композиции сразу начала играть следующая композиция?!

Код:

<!doctype html>
        <html>
            <head>
                <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
                <script src="http://kolber.github.com/audiojs/audiojs/audio.js" type="text/javascript"></script>
                <script type="text/javascript">
                    $(function() {
                        // Setup the player
                        var audio = audiojs.createAll()[0];
       
                        // Load in a track on click
                        $('ul li').click(function(e) {
                            e.preventDefault();
                            $(this).addClass('playing').siblings().removeClass('playing');
                            audio.load($('a', this).attr('data-src'));
                            audio.play();
                        });
                    });
                </script>

               
                <meta charset="utf-8">
                <style>

                </style>
            </head>
            <body>
                <div id="wrapper">
                  <h1>Заголовок</h1>
                  <audio preload class="audio"></audio>
                  <ul>
                    <li><a href="#" data-src="fifa10.mp3">один</a></li>
                    <li><a href="#" data-src="Les_Matins.mp3">два</a></li>
                    <li><a href="#" data-src="fifa10.mp3">три</a></li>
                  </ul>
                </div>
            </body>
        </html>


Deff 04.05.2015 20:48

Amator,
Ну по идее, должно быть два тега audio, в которых предзагружены две песни(или три тега и три песни, ибо загрузка продолжительна и не даст тут же воспроизвести), далее отлеживаем событие завершениея песни(второй тег пока не play не включен) очевидно их удобно заернуть в один общий тег, и отслеживать событие на родителе... Ну такие соображения
Статья в помощь => http://habrahabr.ru/post/148202/

Опан 05.05.2015 11:05

За то, что должно произойти после окончания воспроизведения (т. е., это - запуск следующей песни) отвечает событие audio.onended
<audio id="audio" src="1.mp3" onended="this.src='2.mp3';this.play()"></audio>

или так:
<script>
audio.onended=function(){
   this.src="2.mp3";
   this.play();
}
</script>

Amator 05.05.2015 16:46

Спасибо, помогло!)


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