Аудиоплеер с динамическим списком воспроизведения [дубликат]

Не уверен, что это все еще актуально, но такое же поведение имеет место и для словарей. Посмотрите на этот пример.

a = {'par' : [1,21,3], 'sar' : [5,6,8]}
b = a
c = a.copy()
a['har'] = [1,2,3]

a
Out[14]: {'har': [1, 2, 3], 'par': [1, 21, 3], 'sar': [5, 6, 8]}

b
Out[15]: {'har': [1, 2, 3], 'par': [1, 21, 3], 'sar': [5, 6, 8]}

c
Out[16]: {'par': [1, 21, 3], 'sar': [5, 6, 8]}
58
задан Derek 朕會功夫 1 August 2014 в 03:58
поделиться

9 ответов

вы можете загрузить следующий клип в событии onend, подобном этому

<script type="text/javascript">
var nextVideo = "path/of/next/video.mp4";
var videoPlayer = document.getElementById('videoPlayer');
videoPlayer.onended = function(){
    videoPlayer.src = nextVideo;
}
</script>
<video id="videoPlayer" src="path/of/current/video.mp4" autoplay autobuffer controls />

Дополнительная информация здесь

56
ответ дан Litestone 22 August 2018 в 03:44
поделиться
  • 1
    будет ли это не просто играть 2 файла, как насчет воспроизведения говорят 10 аудиофайлов – defau1t 23 April 2012 в 13:29
  • 2
    Я думаю, что все, что вам нужно сделать, это создать массив URL-адресов (назовем его myArray), создать var i = 1, изначально установить nextVideo в myArray [0] и под videoPlayer.src = nextVideo; put nextVideo = myArray [i]; я ++; Таким образом, каждый раз, когда текущее видео заканчивается, загружается следующее видео, и следующий URL-адрес будет готов. PS. извините за полное отсутствие форматирования, я на работе и просто хочу быстро ответить – DanTheMan 22 April 2014 в 22:21
  • 3
    Для тех, кто хочет зациклиться на первом видео после второго, заканчивается здесь очень простая адаптация вышеупомянутого ответа: & lt; script & gt; var nextVideo = ["путь / of / current / video.mp4", "путь / of / next / video.mp4"]; var curVideo = 0; var videoPlayer = document.getElementById ('videoPlayer'); videoPlayer.onended = function () {if (curVideo == 0) {videoPlayer.src = nextVideo [1]; curVideo = 1; } else if (curVideo == 1) {videoPlayer.src = nextVideo [0]; curVideo = 0; }} & lt; / script & gt; Fiddle: jsfiddle.net/P38aV – cameronjonesweb 4 June 2014 в 05:38

Вы должны взглянуть на Popcorn.js - фреймворк javascript для взаимодействия с Html5: http://popcornjs.org/documentation

3
ответ дан brendan 22 August 2018 в 03:44
поделиться

Невозможно определить список воспроизведения, используя только тег <video> или <audio>, но есть способы их управления, поэтому вы можете имитировать список воспроизведения с использованием JavaScript. Ознакомьтесь с разделами 4.8.7, 4.8.9 (особенно 4.8.9.12) спецификации HTML5 . Надеемся, что большинство методов и событий реализовано в современных браузерах, таких как Chrome и Firefox (последние версии, конечно).

1
ответ дан Felix 22 August 2018 в 03:44
поделиться

Это было сделано там: http://www.jezra.net/projects/pageplayer

0
ответ дан Laurent Debricon 22 August 2018 в 03:44
поделиться

Я создал скрипт JS для этого здесь:

http://jsfiddle.net/Barzi/Jzs6B/9/

Во-первых, ваш HTML-разметка выглядит так:

<video id="videoarea" controls="controls" poster="" src=""></video>

<ul id="playlist">
    <li movieurl="VideoURL1.webm" moviesposter="VideoPoster1.jpg">First video</li>
    <li movieurl="VideoURL2.webm">Second video</li>
    ...
    ...
</ul>

Во-вторых, ваш код JavaScript через библиотеку JQuery будет выглядеть так:

$(function() {
    $("#playlist li").on("click", function() {
        $("#videoarea").attr({
            "src": $(this).attr("movieurl"),
            "poster": "",
            "autoplay": "autoplay"
        })
    })
    $("#videoarea").attr({
        "src": $("#playlist li").eq(0).attr("movieurl"),
        "poster": $("#playlist li").eq(0).attr("moviesposter")
    })
})​

И последнее, но не менее важное: ваш CSS:

#playlist {
    display:table;
}
#playlist li{
    cursor:pointer;
    padding:8px;
}
#playlist li:hover{
    color:blue;                        
}
#videoarea {
    float:left;
    width:640px;
    height:480px;
    margin:10px;    
    border:1px solid silver;
}​
11
ответ дан Maziar Barzi 22 August 2018 в 03:44
поделиться

Меня не устраивало то, что было предложено, вот мое предложение, используя jQuery:

            <div id="playlist">
                <audio id="player" controls preload="metadata" volume="1">
                  <source src="" type="audio/mpeg">
                  Sorry, this browser doesn't support HTML 5.0
                </audio>
                <ul></ul>
            </div>

            <script>
                var folder = "audio";
                var playlist = [
                    "example1.mp3",
                    "example2.mp3"
                ];
                for (var i in playlist) {
                    jQuery('#playlist ul').append('<li>'+playlist[i]+'</li>');
                }

                var player = document.getElementById('player');
                var playing = playlist[0];
                player.src = folder + '/' + playing;

                function display(id) {
                    var list = jQuery('#playlist ul').children();
                    list.removeClass('playing');
                    jQuery(list[id]).addClass('playing');
                }

                display(0);

                player.onended = function(){
                    var ind_next = playlist.indexOf(playing) + 1;

                    if (ind_next !== 0) {
                        player.src = folder + '/' + playlist[ind_next];
                        playing = player.src;
                        display(ind_next)
                        player.play();
                    }
                }
            </script>

Вам нужно только отредактировать массив playlist, и вы закончили

0
ответ дан MrVaykadji 22 August 2018 в 03:44
поделиться

Да, вы можете просто указать ваш тэг src в файл списка воспроизведения .m3u. Файл .m3u прост в построении -

#hosted mp3's need absolute paths but file system links can use relative paths
http://servername.com/path/to/mp3.mp3
http://servername.com/path/to/anothermp3.mp3
/path/to/local-mp3.mp3

----- UPDATE -----

Ну, это список воспроизведения Файлы m3u поддерживаются на на iPhone, но не на многое другое, включая Safari 5, что печально. Я не уверен в телефонах Android, но я сомневаюсь, что они поддерживают его, поскольку Chrome не делает этого. Извините за дезинформацию.

1
ответ дан Shi 22 August 2018 в 03:44
поделиться

Я немного оптимизировал код javascript из cameronjonesweb. Теперь вы можете просто добавить клипы в массив. Все остальное делается автоматически.

var nextVideo = ["http://www.w3schools.com/html/movie.mp4","http://www.w3schools.com/html/mov_bbb.mp4","http://www.w3schools.com/html/movie.mp4"];
var curVideo = 0;
var videoPlayer = document.getElementById('videoPlayer');
videoPlayer.onended = function(){
		++curVideo;
    if(curVideo < nextVideo.length){    		
        videoPlayer.src = nextVideo[curVideo];        
    } 
}
<video width="320" height="240" autoplay controls id="videoPlayer">
  <source src="http://www.w3schools.com/html/movie.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>

2
ответ дан Taurus 22 August 2018 в 03:44
поделиться

jPlayer - это бесплатная и открытая библиотека HTML5 Audio и Video, которую вы можете найти полезной. Он поддерживает плейлисты, созданные в: http://jplayer.org/

3
ответ дан yagoogaly 22 August 2018 в 03:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: