javascript - HTML5 视频 : canPlayType() is not working in safari

标签 javascript html safari html5-video

我尝试了在developer.apple.com上编写的以下代码,但它抛出错误:

TypeError: 'undefined' is not a function (evaluating 'myVideo.canPlayType(myTypes[i])')

<!doctype html>
<html>
<head>
    <title>JavaScript Fallback</title>
    <script type="text/javascript">
        function checkPlaylist() {
            var playAny = 0;
            myTypes = new Array ("video/mp4","video/ogg","video/divx");
            var nonePlayable = "Your browser cannot play these movie types."
            var myVideo = document.getElementsByTagName('video')[0];
            for (var i = 0, len = myTypes.length; i < len; x++) {
               var canPlay = myVideo.canPlayType(myTypes[i]);
                if ((canPlay == "maybe") || (canPlay == "probably"))
                    playAny = 1;
            }
            if (playAny == 0)
                document.getElementById("video-player").innerHTML = nonePlayable;
         }
    </script>
</head>
<body onload="checkPlaylist()" >
    <div id="video-player" align=center>
        <video controls height="200" width="400">
            <source src="myMovie.m4v" type="video/mp4">
            <source src="myMovie.oga" type="video/ogg">
            <source src="myMovie.dvx" type="video/divx">
        </video>
    </div>
</body>
</html>

最佳答案

使用以下脚本在 Safari 浏览器中检查您的 myTypes 数组参数:

<!DOCTYPE html> 
<html> 
<body> 

<p>Can my browser play DIVX videos? <span>
<button onclick="supportType(event,'video/divx','H.264')" type="button">Test</button>
</span></p>

<p>Can my browser play MP4 videos? <span>
<button onclick="supportType(event,'video/mp4','avc1.42E01E, mp4a.40.2')" type="button">Test</button>
</span></p>

<p>Can my browser play OGG videos? <span>
<button onclick="supportType(event,'video/ogg','theora, vorbis')" type="button">Test</button>
</span></p>

<script> 
function supportType(e,vidType,codType) { 
    var vid = document.createElement('video');
    isSupp = vid.canPlayType(vidType+';codecs="'+codType+'"');
    if (isSupp == "") {
        isSupp = "No";
    }
    e.target.parentNode.innerHTML = "Answer: " + isSupp;
} 
</script> 

</body> 
</html>

关于javascript - HTML5 视频 : canPlayType() is not working in safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27599883/

相关文章:

javascript - 如何在 javascript 中创建 nxn 矩阵/数组?

javascript - 为什么我关于复选框选中事件的 JavaScript 不起作用

html - 如何在 HTML 中添加匹配的开始标签

java - 如何在 Safari 中通过 Javascript 访问 Java 对象

Safari 在测试时陷入无限循环 - 有什么出路吗?

javascript - Safari、IE 中的日期问题

javascript - 如何使用 jQuery 在循环中获取选中的复选框值?

javascript - 如何检查回调是否待处理?

javascript - 如何在javascript中计算数组中的重复值

html - 使用 VideoJS 播放器播放 RTMP 流