【问题标题】:Embed all video in universal HTML5 video player将所有视频嵌入通用 HTML5 视频播放器
【发布时间】:2018-01-16 12:38:53
【问题描述】:

我搜索了一个将所有媒体嵌入通用视频播放器的系统:

  • 推特视频
  • Facebook 视频
  • Youtube 视频
  • Vimeo 视频
  • 等等……

您是否有将其嵌入 PHP 或 HTML5 的想法?

【问题讨论】:

    标签: php html video embed


    【解决方案1】:

    您可以使用基本的 HTML5 视频标签。这是一个很好的链接,可以帮助您入门 https://www.html5rocks.com/en/tutorials/video/basics/

    <video controls>
      <source src="devstories.webm" 
              type='video/webm;codecs="vp8, vorbis"'/>
      <source src="devstories.mp4"
              type='video/mp4;codecs="avc1.42E01E, mp4a.40.2"'/>
    </video>
    

    在上面的例子中你可以看到视频文件名是devstories,你可以有以下类型的视频格式,mp4、webm和ogg。

    如果您需要有关格式的更多信息,可以在此处阅读 https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats

    【讨论】:

      【解决方案2】:

      Youtube、Fb 或 Vimeo 不允许您将它们推送到其他播放器而不是它自己的播放器中,但这会将来自 url 的视频嵌入其原生播放器中。没有研究过推特视频,但你可以扩展我的脚本。 (getvidinfo 函数也可以获取缩略图,但我没有找到从 fb 获取的方法。

      <?
      function getYoutubeIdFromUrl($url) {    
          $parts = parse_url($url);
          if(($parts["host"]=="m.youtube.com" || $parts["host"]=="youtube.com" || $parts["host"]=="www.youtube.com" || $parts["host"]=="youtu.be" || $parts["host"]=="www.youtu.be") && !strstr($url,"/c/") && !strstr($url,"/channel/") && !strstr($url,"/user/")){
          if(isset($parts['query'])){
              parse_str($parts['query'], $qs);
              if(isset($qs['v'])){
                  return $qs['v'];
              }else if(isset($qs['vi'])){
                  return $qs['vi'];
              }
          }
          if(($parts["host"]=="youtu.be" || $parts["host"]=="www.youtu.be") && isset($parts['path'])){
              $path = explode('/', trim($parts['path'], '/'));
              return $path[count($path)-1];
          }
          }
          if(strlen($url)==11 && (!strstr($url, "http://") && !strstr($url, "https://") && !strstr($url, "www.") && !strstr($url, "youtube") && !strstr($url, "www.") && !strstr($url, "youtu.be"))) return $url;
          return false;
      }
      
      function validateFbVideoUrl($url){
          $parts = parse_url($url);
          if(($parts["host"]=="facebook.com" || $parts["host"]=="www.facebook.com" || $parts["host"]=="fb.me" || $parts["host"]=="fb.com") && !strstr($url,"/pg/")){
              return $url;
          }
          return false;
      }
      
      function getVimeoId($url){
          $parts = parse_url($url);
          if($parts['host'] == 'www.vimeo.com' || $parts['host'] == 'vimeo.com'){
              $vidid=substr($parts['path'], 1);
              return $vidid;
          }
          return false;
      }
      
      function getvidinfo($url){
           $getYT=getYoutubeIdFromUrl($url);
           if($getYT){
              $result["type"]="yt";
              $result["string"]=$getYT;
              $result["img"]="https://img.youtube.com/vi/".$getYT."/mqdefault.jpg";
              return($result);
           }else{
               //fb video
               $getFB=validateFbVideoUrl($url);
               if($getFB){
                  $result["type"]="fb";
                  $result["string"]=$getFB;
                  $result["img"]="example.com/your-image-here.jpg";// I DIDN'T FIND A WAY TO GET FB VIDEO THUMBNAIL
                  return($result);
               }else{
                   $vimeoid=getVimeoId($url);
                   if($vimeoid){
                      $hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$vimeoid.php"));
                      $result["type"]="vim";
                      $result["string"]=$vimeoid;
                      $result["img"]=$hash[0]["thumbnail_large"];
                      return($result);
                   }
               }
          }
          return false;
      }
      
      function echovideo($url){
          if($url){
              $vidinfo=getvidinfo($url);
              if($vidinfo){
                  if($vidinfo["type"]=="yt"){
                  ?><div>
                      <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/<?echo $vidinfo["string"]?>" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
                      <?
                  }elseif($vidinfo["type"]=="fb"){
                      ?>
                      <div>
                       <iframe src="https://www.facebook.com/plugins/video.php?href=<? echo $vidinfo["string"]; ?>&show_text=0&width=560&height=315" width="560" height="315" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe></div>
                       <?
                  }elseif($vidinfo["type"]=="vim"){
                      ?><div><iframe src="https://player.vimeo.com/video/<?echo $vimeoid;?>" width="560" height="315" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe></div>
                      <?
                  }
              }
          }
      }
      ?>
      

      简单用法:

      echovideo("https://www.youtube.com/watch?v=VRuL3_5rFnU");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-24
        • 2018-07-08
        • 2016-03-24
        • 2012-02-21
        • 2011-05-20
        • 2018-09-18
        • 1970-01-01
        相关资源
        最近更新 更多