如何在QuickTime影片播放完毕后触发Javascript函数?

时间:2010-04-29 18:58:32

标签: javascript jquery quicktime

当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
这与预告片有关。

3 个答案:

答案 0 :(得分:2)

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

对于那些感兴趣的人,代码在这里:
http://www.generalordersno9.com/wp-content/themes/gono9/js/g.js

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

答案 1 :(得分:0)

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方法的一部分,但你永远不知道: - )

答案 2 :(得分:0)

IIRC,Apple的QuickTime javaScript界面​​已经崩溃,并且已经存在多年了。没有迹象表明他们会修复它。你应该使用HTML5视频(它有一个正常的,功能性的,已经结束的&#39;事件有效)。

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