2010-06-14 58 views
6

Tôi đã có này trong <head>:Trình nghe sự kiện trong HTML5 Video trên iPad Safari không hoạt động?

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

Và điều này trong <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 bình thường của tôi tạo đẹp mục log-file như mong đợi. Tuy nhiên, Mobile Safari từ iPad không làm gì cả.

Điều gì có thể sai với điều này?

Cảm ơn!

Trả lời

36

Tôi đã không thể có được một tổ chức của readystate trên một trong hai ipad, nhưng, nhưng bạn có thể nhận được các sự kiện khác mà nhiều hơn hoặc ít hơn cho phép bạn suy luận các readystate.

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); 

Nhưng hãy để rõ ràng, vấn đề là Apple nói khá nhiều về toàn bộ thế giới chết tiệt mà họ đang sử dụng internet sai. Cấp, mọi người ghét các trang web bắt đầu chơi nhạc thứ hai mà họ tải nhưng sau đó Apple đi hạt và giết bất kỳ/ALL đệm âm thanh/video không được khởi tạo rõ ràng bởi cử chỉ người dùng vì Apple, rõ ràng, cho rằng người dùng của họ quá chậm nhấn "back" nếu một trang web làm phiền họ; fanboys cũng đồng ý. Điều này về cơ bản lá phần còn lại của chúng tôi để hack shit ra khỏi các ứng dụng của chúng tôi nếu chúng ta dám thử và quản lý bất kỳ loại hiệu ứng âm thanh. Tôi biết đây không phải là nơi để rant ... nhưng tôi sẽ được damned nếu xây dựng BẤT K soft mềm của kinh nghiệm thú vị/tương tác trong HTML5 trên iPad không phải là facepalm sau khi khác ... có thể là giới hạn bộ nhớ cache 5mb rằng chỉ đơn giản là làm hỏng trình duyệt nếu trang có quá nhiều ảnh (theo Apple) hoặc khó tải trước bất kỳ loại phương tiện nào để nâng cao giao diện người dùng - nghiêm túc, bên ngoài blog wordpress và trình đọc rss, triển khai HTML5 trên thiết bị di động của Safari là khá vô giá trị. Và như vậy giấc mơ của HTML5 "xây dựng một lần, chơi ở bất cứ nơi nào" đề xuất giá trị đã chết và chúng tôi quay trở lại để tạo ứng dụng gốc ... ít nhất điều này mang lại cho chúng tôi bảo mật công việc tốt/rant

+10

Ông đã cung cấp giải pháp thay thế. Và địa ngục, tôi đã bỏ phiếu cho anh ta cho rant. –

+0

Tôi chia sẻ >> mỗi ngày một fck * ng <<, cùng một bài hát. Cảm ơn vì điểm rõ ràng và quan trọng của bạn về vấn đề này. – ppalmeida

Các vấn đề liên quan