Php 我需要一种随机播放一系列视频的方法

Php 我需要一种随机播放一系列视频的方法,php,arrays,html,video,html5-video,Php,Arrays,Html,Video,Html5 Video,现在,我有一段代码将加载三个视频中的一个——随机播放顺序在视频本身中 在下面的代码中,我只处理三个视频,考虑到所有的可能性,这使得页面加载时有六种可能性。我将在最终的网站上处理大约12个视频,考虑到构建每种可能性(114个视频)所需的时间,这种方法不会削减视频 无论如何,这是我的代码: <div id="video_container"> <div id="video"> <video width="1060" height="596" au

现在,我有一段代码将加载三个视频中的一个——随机播放顺序在视频本身中

在下面的代码中,我只处理三个视频,考虑到所有的可能性,这使得页面加载时有六种可能性。我将在最终的网站上处理大约12个视频,考虑到构建每种可能性(114个视频)所需的时间,这种方法不会削减视频

无论如何,这是我的代码:

<div id="video_container">
    <div id="video">
        <video width="1060" height="596" autoplay="autoplay" loop="loop" muted="muted">

            <? $videolink = get_template_directory_uri() . "/videos/";

            $videos = array(

            ' <source src="' . $videolink . 'test-123.mp4" type="video/mp4">
            <source src="' . $videolink . 'test-123.webm" type="video/webm">
            <source src="' . $videolink . 'test-123.ogv" type="video/ogg">
            ',

            ' <source src="' . $videolink . 'test-132.mp4" type="video/mp4">
            <source src="' . $videolink . 'test-132.webm" type="video/webm">
            <source src="' . $videolink . 'test-132.ogv" type="video/ogg">
            ',

            ' <source src="' . $videolink . 'test-213.mp4" type="video/mp4">
            <source src="' . $videolink . 'test-213.webm" type="video/webm">
            <source src="' . $videolink . 'test-213.ogv" type="video/ogg">
            ',

            ' <source src="' . $videolink . 'test-231.mp4" type="video/mp4">
            <source src="' . $videolink . 'test-231.webm" type="video/webm">
            <source src="' . $videolink . 'test-231.ogv" type="video/ogg">
            ',

            ' <source src="' . $videolink . 'test-312.mp4" type="video/mp4">
            <source src="' . $videolink . 'test-312.webm" type="video/webm">
            <source src="' . $videolink . 'test-312.ogv" type="video/ogg">
            ',

            ' <source src="' . $videolink . 'test-321.mp4" type="video/mp4">
            <source src="' . $videolink . 'test-321.webm" type="video/webm">
            <source src="' . $videolink . 'test-321.ogv" type="video/ogg">
            ',

            );

            echo $videos[array_rand($videos)]; } ?>

        </video>
    </div>
</div>


您试图做的事情不能用PHP来完成。PHP作为服务器端语言只能影响页面最初的加载方式。从那里获得一系列自动播放的视频,您需要使用客户端代码,如jQuery或Javascript

我建议使用XML列出您的视频URL,如下所示:

<Videos>
    <Video>
      <Name>Video Name</Name>
      <URL>link to video</URL>
    </Video>
    <Video>
      <Name>Video Name</Name>
      <URL>link to video</URL>
    </Video>
    <Video>
      <Name>Video Name</Name>
      <URL>link to video</URL>
    </Video>
</Videos>

视频名称
链接到视频
视频名称
链接到视频
视频名称
链接到视频
然后使用jQuery加载XML文件并在加载时随机填充视频,然后在页面加载时设置新的随机视频。 下面是一个链接,指向如何使用jQuery加载XML文件:

尝试
shuffle()
(请参阅)


您可以创建包含所有12个视频的数组,对其调用shuffle(),然后每次都将随机输出所有12个视频。

在JavaScript或TypeScript中创建源名称数组,然后创建随机函数

function random(i){
return Math.rand()*100%12;
}
然后使用返回值设置源src

如果以前播放过任何其他视频,则必须加载播放机

$("video").load();
然后玩

$("video").play();

根据我的理解,你有12个视频,你想随机播放其中的3个,一个接一个。如果我是你,我会用下面的方法

  • 在页面加载我会选择3个视频,你可以使用视频名称数组,然后使用“洗牌”功能
  • 在每个视频完成后使用javascript侦听器加载其他视频

    • php代码生成javascript视频数组
  • $videos=[ “视频1.mp4”, “视频2.mp4”, “视频3.mp4”, “视频4.mp4”, “视频5.mp4” ]; 洗牌(视频)

    echo“var videos=”。json_编码(数组_切片($videos,0,3))

    • 用于播放的JS块
    var视频=[
    "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4",
    "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4",
    ];
    var-videoId=0;
    var elemVideo=document.getElementById('video');
    var elemSource=document.createElement('source');
    elemVideo.appendChild(elemSource);
    elemVideo.addEventListener('end',play_next,false);
    函数play_next(){
    if(videoId==2){
    elemVideo.stop();
    }否则{
    video.pause();
    setAttribute('src',videos[videoId]);
    videoId++;
    elemVideo.load();
    elemVideo.play();
    }
    }
    播放下一个()
    
    
    不支持视频
    
    谢谢,似乎我必须找到一个能够像播放列表一样在列表中运行的视频播放器,但这可能会解决加载时的随机顺序问题。这可能是您的门票:。如果查看源,可以看到可以将多个视频添加到播放列表中。因此,您可以
    shuffle()
    服务器端,将数组输出到适当的JavaScript中,然后使用jPlayer选项删除播放列表控件。您也可以查看以下内容:。太棒了!我需要做的就是在函数中加入一个随机数组。嘿,arcodesign,我想你不能帮我进一步解决这个问题吗?上一个fiddle工作正常,但不兼容跨浏览器。我把这些放在一起考虑:不幸的是,它没有行为,我不太清楚为什么。。。有什么想法吗?arcodesign提到了创建随机列表的shuffle()。考虑到他的建议仍然是服务器端的,我需要找到一种按顺序播放视频列表的方法——可能是使用jquery。根据您的建议,我也可以使用xml文件加载这些文件,但我现在遇到的问题是如何按顺序播放这些视频(无论列表是什么)。我想你还不知道jquery插件可以播放“播放列表”风格的视频吗?需要注意的是,视频不应该有播放控件或可见列表——它们有点像背景元素。你可以像arcodesign提到的那样使用jPlayer,但是一个完整的插件可能不是你所需要的,因为你不需要控件和所有花哨的东西。您可以将一个“结束”事件处理程序绑定到您的所有视频,并让它开始下一个视频。如下所示:$('.video').bind('end',function(){this.sibling('.video').play();});我不知道怎么用这个。尽管看起来很有希望。我凑了一把又快又脏的js小提琴,但绝对不对。。。我会继续修改的。你似乎在回答一个不同的问题,而这个问题本来不应该附加到原来的问题上。你的答案更适合作为评论,如果你不删除它,它很可能会赢得选票。