0

我需要将视频发送到客户端站点,但由于编解码器不同,我不想发送重复的视频)。

我在将 jscript 函数的结果转换为 $variable 时遇到了很多问题。由于检索 SELECT 的复杂性,我无法使用 DISTINCT,我需要包含扩展名。

我花了几天时间下载无法开始工作的“示例”。下面是从两个示例 Detecting HTML5 videos 和 How to pass jscript variables 中创建的最新内容。

    <script>
    function playsvideo() {
        return supports_video();
    }
    function supports_h264() {
        var v = document.createElement("video");
        return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
    }
    function supports_ogg() {
        var v = document.createElement("video");
        return v.canPlayType('video/ogg; codecs="theora, vorbis"');
    }
    function supports_webm() {
        var v = document.createElement("video");
        return v.canPlayType('video/webm; codecs="vp8, vorbis"');
    }
    <?php
    if(playsvideo()) {
        if(supports_ogg()?true:false)  {$ext='ogv';}
        else if(supports_webm()?true:false) {$ext='webm';}
        else if(supports_h264()?true:false) {$ext='mp4';}
        else {$ext='flash';}
    }
    ?>
    </script>

如果我将一个常量传递给 MYSQL,那么网页就可以工作,但是上面的代码作为我的 HEAD 部分中的最后一项,网页挂起时只有一个空白页(背景颜色已设置)。我也尝试过将 php 精简为一行:

if(paysvideo()) {$ext='ogv';} // still hangs
4

1 回答 1

0

I found the answer, I used Modernizr http://diveintohtml5.info/detect.html and a hidden field How do I use Javascript to change value of a hidden input depending on status of a checkbox?

    <input id="myvideoext"type="hidden" name="myvideoext"   value="fallback">

if (Modernizr.video) {
  if (Modernizr.video.ogg) {
        document.getElementById('myvideoext').value="ogv";
  } else if (Modernizr.video.webm) {
    document.getElementById('myvideoext').value="webm";
  } else if (Modernizr.video.h264){
    document.getElementById('myvideoext').value="mp4";
  }
}
于 2013-06-30T06:02:34.523 回答