0

我有一些使用 adobe captivate 6 创建的培训视频。当我观看视频时,它们需要 10 到 60 秒才能加载,然后才会开始播放,然后才会出现在窗口中(文件范围从 1MB 到 5MB)。我正在使用 jquery 将它们加载到 jquery-ui 对话框中,并在文件完全下载后让浏览器开始播放。

我遇到的问题是在播放开始之前等待 .swf 完全下载。我希望它开始播放,然后在播放时继续下载,这样用户就不必等待很长时间才能看到一些东西。

像这样的视频培训对我来说是一个相对较新的领域,所以我真的不知道我的选择是什么......如果 .swf 不是要走的路,我有哪些使用 captivate 的选择?我尝试了 captviate 的 youtube 导出,但它调整了视频的大小以适合 youtube,并且使字体太小而无法阅读。

当我在 youtube 上观看视频时,它们会立即开始播放,但在观看时继续下载...我喜欢这个概念,并想知道是否可以使用我现有的 .swf 文件实现类似的效果。

这个问题有哪些选择和可能的解决方案?

在此先感谢您的帮助。

这是加载对话框的调用:

<span onclick="$('#popup_tutorial').dialog('option', 'position', 'top').dialog('option','title','Portfolios - Creating a new portfolio').load('tutorials/acctg_payments.php').dialog('widget').dialog('open');" class="a_link edit_link">View Tutorial</span>

这是#popup_tutorial html:

<div id="popup_tutorial" style="text-align:left"></div>
<script type="text/javascript">
    $("#popup_tutorial").dialog({
        bgiframe: true,
        autoOpen: false,
        Height: 740,
        width: 900,
        modal: false,
        close: function () {$(this).empty();}
    });
</script>

这是包含 .swf 代码并放置在 #popup_tutorial div 内的 .php 页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>

<script src="standard.js" type="text/javascript"></script>
</head>

<body   bgcolor="#f5f4f1">

    <div id="CaptivateContent">&nbsp;
    </div>
    <script type="text/javascript">
       var so = new SWFObject("acctg_payments_making.swf", "Captivate", "881", "720", "10", "#CCCCCC");
        so.addParam("quality", "high");
        so.addParam("name", "Captivate");
        so.addParam("id", "Captivate");
        so.addParam("wmode", "window");
        so.addParam("bgcolor","#f5f4f1");
        so.addParam("menu", "false");
        so.addParam("AllowScriptAccess","always");
        so.addVariable("variable1", "value1");
        so.setAttribute("redirectUrl", "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash");
        so.write("CaptivateContent");
    </script>


    <script type="text/javascript">
        document.getElementById('Captivate').focus();
        document.Captivate.focus();
    </script>
</body>
</html>
4

2 回答 2

0

Captivate 和大多数 Flash 电影并不是像电影一样以线性方式构建,即使它们的某些内容可能会以这种方式出现。有大量的交互逻辑可供 SWF 播放。也就是说,您几乎可以看到它们就像 DLL、EXE、Java JAR 或 IPA (iphone),在下载整个二进制文件之前无法运行。

也就是说,SWF 为内容开发人员提供了在 SWF 部分加载时运行和播放内容的方法,但是这取决于生成 SWF 的开发人员或生成此输出的程序的能力,通常它是非常复杂的大多数开发人员尚未达到的水平。在您的情况下,我认为 Captivate 不提供这种功能。

但是,如果你想实现它,你可以考虑将 Captivate 电影分成更小的电影并将它们链接在一起,但我怀疑 Captivate 会在当前电影播放时预加载下一部。

于 2012-07-23T18:11:03.297 回答
0

Captivate 6 和 7(可能还有 8 个)允许您确定在电影开始播放之前应该下载多少百分比的电影。我有一段时间没有使用 Captivate 6,所以我不记得它在 UI 中的确切位置,但在 Captivate 7 上,Quiz -> Quiz Preferences从主菜单中选择以打开首选项对话框。在那里你可以调整preloader %. 这是在播放开始前将被下载的电影的百分比。默认情况下,它设置为 100%,这可以解释为什么您的电影在完全下载之前不会开始。

以我的经验设置这个 % 将在某些设置中起作用,但在其他设置中不起作用。尽管如此,还是值得一试。

-帕特里克

于 2014-09-07T10:01:50.677 回答