2014-12-22 4 views
1

Я попытался ниже кода, написанного на developer.apple.com но бросать ошибку говорит:HTML5 Видео: canPlayType() не работает в сафари

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> 
+0

Пожалуйста, посмотрите этот сайт http://webdesign.about.com/od/video/a/html5-video-formats.htm – Pank

ответ

1

Проверьте ваши myTypes параметр массива в Safari браузер с нижеприведенным сценарием:

<!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> 
0

Вы находитесь в Safari для Windows? Если так, что, вероятно, не удастся. Apple Safari для окон больше не поддерживается.

Также у вас есть var i = 0, len = myTypes.length; i < len; x++. Последний x должен быть i.

Смежные вопросы