HTML5中的事件监听器iPad Safari上的视频无法正常工作?

时间:2010-06-14 14:16:06

标签: video javascript-events ipad html5 safari

我在<head>

中得到了这个
<script>
      function log(event){
     var Url = "./log.php?session=<?php echo session_id(); ?>&event=" + event;

        xmlHttp = new XMLHttpRequest(); 
        xmlHttp.open( "GET", Url, true );
        xmlHttp.send( null );

    }
</script> 

这是<body>

<video id="video" src="./video/LarryVideo.mp4" 
  controls="controls" 
  poster="./img/video_poster.jpg"
  onabort="log('onabort');"
  oncanplay="log('oncanplay');"
  oncanplaythrough="log('oncanplaythrough');"
  ondurationchange="log('ondurationchange');"
  onemptied="log('onemptied');"
  onended="log('onended');"
  onerror="log('onerror');"
  onloadeddata="log('onloadeddata');"
  onloadedmetadata="log('onloadedmetadata');"
  onloadstart="log('onloadstart');"
  onpause="log('onpause');"
  onplay="log('onplay');"
  onplaying="log('onplaying');"
  onprogress="log('onprogress');"
  onratechange="log('onratechange');"
  onreadystatechange="log('onreadystatechange');"
  onseeked="log('onseeked');"
  onseeking="log('onseeking');"
  onstalled="log('onstalled');"
  onsuspend="log('onsuspend');"
  ontimeupdate="log('ontimeupdate');"
  onvolumechange="log('onvolumechange');"
  onwaiting="log('onwaiting');">
    <script>
        QT_WriteOBJECT('./video/LarryVideo.mp4',
            '380px', '285px',           // width & height
            '',                         // required version of the ActiveX control, we're OK with the default value
            'scale', 'tofit',           // scale to fit element size exactly so resizing works
            'emb#id', 'video_embed',    // ID for embed tag only
            'obj#id', 'video_obj');     // ID for object tag only
    </script> 
</video>

我的普通Safari按预期创建了漂亮的日志文件条目。然而,来自iPad的Mobile Safari根本不做任何事情。

这可能有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:38)

我无法在ipad上获得持有状态,但你可以获得其他事件,或多或少让你推断出就绪状态。

var audio = new Audio("someSource.mp3");
    audio.play(); 
 /* you may need to use .load() depending on how the event was initiated */
    audio.addEventListener("canplay", handleCanPlay, false);
    audio.addEventListener("durationchange", handleDurationChange, false);
但是,让我们清楚,问题是苹果几乎告诉整个该死的世界他们正在使用互联网错误。当然,每个人都讨厌在他们加载的第二个音乐开始播放音乐的网站,但是苹果公​​司疯狂地杀死了用户手势未明确发起的任何/所有音频/视频缓冲,因为苹果公司显然认为他们的用户过于迟缓如果一个网站困扰他们,就“击退”;粉丝也同意。如果我们敢于尝试和管理任何类型的声音效果,这基本上让我们其他人无法破解我们的应用程序。我知道这不是一个咆哮的地方......但是如果在iPad上构建HTML5中的任何有趣/互动体验的软件不是一个又一个的面孔,我会被诅咒......无论是5mb缓存限制,如果一个页面有太多(根据Apple)图像或者难以预加载任何类型的媒体以增强UI,那么只会崩溃浏览器 - 严重的是,除了wordpress博客和RSS阅读器之外,移动Safari的HTML5实现也毫无价值。所以HTML5“一次构建,随处游玩”的价值主张的梦想已经死了,我们回到了原始的应用程序......至少这给了我们良好的工作安全/咆哮