【问题标题】:Brightcove video templateLoadHandler not firingBrightcove 视频模板LoadHandler 未触发
【发布时间】:2023-04-09 03:10:02
【问题描述】:

嗯,我整个下午都在为 BrightCove API 苦苦挣扎,我真的不知道出了什么问题。

我遵循了 Brightcove 提供的所有内容,并为智能播放器启用了 javascript api。但是 templateLoadHandler 只是没有触发。真是让我抓狂!

这是我的代码

<!doctype html>
<html>
<head>
<title>Brightcove video API demo</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="jBrightCove.js"></script>
</head>

<body>

    <h2>Brightcove Video Cloud Demo</h2>


    <!-- Start of Brightcove Player -->

    <div style="display:none">

    </div>

    <!--
    By use of this code snippet, I agree to the Brightcove Publisher T and C 
    found at https://accounts.brightcove.com/en/terms-and-conditions/. 
    -->

    <script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>

    <object id="myExperience1655503405001" class="BrightcoveExperience">
      <param name="bgcolor" value="#FFFFFF" />
      <param name="width" value="480" />
      <param name="height" value="270" />
      <param name="playerID" value="1655260200001" />
      <param name="playerKey" value="AQ~~,AAABgXJq-HE~,N7Kwgwyc9ubOnOKgNwEM8Jm-tJbp_nzt" />
      <param name="isVid" value="true" />
      <param name="isUI" value="true" />
      <param name="dynamicStreaming" value="true" />



      <param name="@videoPlayer" value="ref:spring" />
      <param name="includeAPI" value="true" />
      <param name="templateLoadHandler" value="myTemplateLoaded" />
    </object>

    <script type="text/javascript">
    // this piece of code is from BrightCove template

    var player;

    var modVP;
    var modExp;
    var modCon;
    ////




     //
    function myTemplateLoaded(experienceID) {
        alert("123");
        player = brightcove.api.getExperience(experienceID);
        modVP = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
        modExp = player.getModule(brightcove.api.modules.APIModules.EXPERIENCE);
        modCon = player.getModule(brightcove.api.modules.APIModules.CONTENT);

    }
</script>

</body>
</html>

如果触发事件,则会显示警报。但从不... 任何人都知道为什么它不起作用?谢谢。

【问题讨论】:

  • 您的帐户是否启用了 API?
  • 视频是否按预期加载和播放?
  • @jimbojw 我测试了,视频按预期加载和播放。
  • 谢谢,templateReadyHandler 参数呢。如果你使用它,它会触发吗?
  • @Alex 如果快速帐户无法使用 Brightcove API 是问题的根本原因,您可以将其添加为答案并接受它,以便社区不会继续为您提供帮助在这个不必要的。

标签: javascript events brightcove


【解决方案1】:

确保在 Brightcove 中为每种播放器类型启用了 SmartPLayer API。如果不在 Brightcove 面板中更改此设置,templateLoadHandler 和 templateReadyHandler 将不会触发。

【讨论】:

    【解决方案2】:

    对于遇到同样顽固问题的后来者:this 是一个有效的演示,请将其修剪一下,看看什么适合你。

    PS,demo中缺失脚本的src应该是:http://docs.brightcove.com/en/scripts/secondsToTime.js

    【讨论】:

      【解决方案3】:

      在这种情况下,Alex 的帐户类型似乎有误。我不是这种情况。我在 Brightcove 论坛上发现代码需要从网络服务器运行。在我将站点中的代码添加到我的本地 XAMPP 安装后,它就像宣传的那样工作。这是我找到信息的网址:

      http://forum.brightcove.com/t5/Media-APIs/templateLoadHandler-not-fired/td-p/19585

      【讨论】:

        【解决方案4】:

        您是否尝试过将处理程序移到 HTML 代码上方?它对我有用。另外,我必须将“crossdomain.xml”文件添加到我的 Web 服务器根目录才能正常工作。您可能不需要它,但以防万一。

        <?xml version="1.0"?>
        <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
        <cross-domain-policy>
        
        
        <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
        
        <!-- Most restrictive policy: -->
            <allow-access-from domain="admin.brightcove.com"/>
        
        
        <!-- Least restrictive policy: -->
        <!--
            <site-control permitted-cross-domain-policies="all"/>
            <allow-access-from domain="*" to-ports="*" secure="false"/>
            <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
        -->
        <!--
          If you host a crossdomain.xml file with allow-access-from domain="*"
          and don’t understand all of the points described here, you probably
          have a nasty security vulnerability. ~ simon willison
        -->
        
        </cross-domain-policy>
        

        【讨论】:

          【解决方案5】:

          我在不包含 jquery 和 jBrightcove.js 的情况下运行了您的代码(因为我没有它们)。它工作得很好。如果它对您不起作用,我猜想 jBrightcove.js 脚本中的某些内容与您的代码之间存在冲突。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-14
            • 1970-01-01
            • 1970-01-01
            • 2013-06-15
            • 1970-01-01
            相关资源
            最近更新 更多