【问题标题】:How to fire a Javascript function when a QuickTime movie has finished playing?QuickTime 电影播放完毕后如何触发 Javascript 函数?
【发布时间】:2010-04-29 18:58:31
【问题描述】:

当 Quicktime 电影结束时,我想用图像幻灯片替换它。我目前的方法是让 .mov 文件与页面上的 Javascript 通信。一旦到达电影的结尾,事件就会调用函数。

所以我的问题是:Quicktime 电影结束时我可以使用什么方法调用 Javascript 函数?

我在这里看到了一些想法,但很难将各个部分组合在一起。 http://developer.apple.com/mac/library/DOCUMENTATION/QuickTime/Conceptual/QTScripting_JavaScript/bQTScripting_JavaScri_Document/QuickTimeandJavaScri.html#//apple_ref/doc/uid/TP40001526-CH001-SW5

我希望使用qt_ended() 功能。

到目前为止,这是我的代码:

 <object width="853" height="496" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">  
   <param name="enablejavascript" value="true" />
   <param name="postdomevents" value="true" />  
   <param name="src" value="/wp-content/themes/gono9/videos/General_Orders_No9_Trailer1.mov" />  
   <param name="controller" value="true" />  
   <param name="autoplay" value="true" />  
   <param name="scale" value="aspect" />  
   <param name="bgcolor" value="000000" />  
   <param name="cache" value="true" />  
   <embed width="853" height="496" src="/wp-content/themes/gono9/videos/General_Orders_No9_Trailer1.mov" bgcolor="000000" cache="true" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/" controller="true" enablejavascript="true" postdomevents="true" autoplay="true" scale="aspect"></embed>  
</object>

qt_ended() 是否进入我的 .js 文件?

我需要帮助将这些部分拼凑起来。

如果查看现有网站有帮助:http://generalordersno9.com
这与预告片有关。

【问题讨论】:

    标签: javascript jquery quicktime


    【解决方案1】:

    我通过阅读 Apple 文档回答了我自己的问题。

    代码在这里:
    http://www.generalordersno9.com/wp-content/themes/gono9/js/g.js

    演示在这里: http://www.generalordersno9.com/

    【讨论】:

    • 感谢 prodigitalson 的帮助。
    【解决方案2】:

    qt_ended 不一定是函数名。这就是它触发的事件名称。您必须将该函数添加为事件的回调。我从来没有通过 js 搞砸过 QT,但是使用 jquery 它看起来像这样:

    var myQuickTime = {
      ended : function() {
        // save a reference to the movie object
        var movie = this;
    
        // do stuff when the movie has ended
        alert('Movie "#'+$(movie).attr('id')+'" Done!');
      }
    };
    
    $(function(){
      // add the listener on dom ready
      $('#mymovie').bind('qt_ended', myQickTime.ended);
    });
    

    现在我不是 100% 使用 jQuery 的 bind 方法。可能由于某种原因,您必须使用基线 js,如您发布的链接上的示例所示(请参阅 myAddListener 函数)。我不认为是这种情况,因为这是 jQuery 的 bind 方法的一部分,但你永远不知道 :-)

    【讨论】:

      【解决方案3】:

      IIRC,Apple 的 QuickTime 的 javaScript 接口已损坏,并且已损坏多年。没有迹象表明他们会修复它。您应该使用 HTML5 视频(它有一个适当的、有效的“结束”事件)。

      如果你很幸运,你的 QT 电影已经在使用 H264 或其他一些 MPEG-4 编解码器,在这种情况下,它可能只适用于 HTML5 视频标签,尽管你可能需要另存为.. 或导出首先是 m4v 扩展。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-18
        • 2012-09-04
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多