0

I have some training videos created using adobe captivate 6. When I watch the videos they take anywhere from 10 to 60 seconds to load before any playing begins an before anything shows up in the window (the files range from 1MB up to 5MB). I'm loading them into a jquery-ui dialog box using jquery and simply letting the browser begin the playing when the file is fully downloaded.

The problem I have, is waiting for the .swf to fully download before play begins. I would like it to begin playing and then continue the download as it plays so the users don't have to wait so long before they see something.

Video trainings like this are a relatively new area for me, so I don't really know what my options are...if .swf is not the way to go, what are my options with using captivate? I tried the youtube export that captviate has, but it resized the videos to fit youtube an makes the font too small to read.

When I watch videos on youtube, they begin play immediatly, but continue the download as you watch...I like that concept and wonder if it is possible to pull off something like this with my existing .swf files.

What are the options and possible solutions to this problem?

Thanks in advance for your help.

Here is the call to load the dialog box:

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

Here is the #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>

and here is the .php page that holds the .swf code and gets placed inside of the #popup_tutorial div:

<!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>
Ronedog
  • 2,313
  • 8
  • 43
  • 85

2 Answers2

0

Captivate and most of the Flash movies are not constructed in a linear fashion as movies, even though some of their contents may appear this way. There are a vast amount of interactive logic put in place for the SWF to play. That said, you can almost see that they are like DLL's, EXEs, Java JARs or IPA (iphone) which cannot be run until the entire binary is downloaded.

That said, SWF provides content developers means to run and play the content even as the SWF is partially loaded, but it is up to the developer who produces the SWF or the program's capability to produce this output, generally it is very complex that it is a level that most developers have yet to pursue. In your case, I don't think Captivate provides such capability.

However, if should you want to make it happen, you could consider breaking the Captivate movies into smaller movies and chain them together, but I doubt Captivate would preload the next one as the current movie is playing.

Tianzhen Lin
  • 2,404
  • 1
  • 19
  • 19
  • Thanks for the response...I noticed if the browser cache has downloaded the file, the next time I click on it, it will immediately play it...would it be possible to download these into the clients cach and have it ready for them...or could something like memcache help do this? – Ronedog Jul 23 '12 at 18:14
0

Captivate 6 and 7 (and probably 8) allow you to determine what percentage of your movie should be downloaded before the movie starts playing. I have not used Captivate 6 in a while so I don't remember where exactly it is in the UI but on Captivate 7, select Quiz -> Quiz Preferences from the main menu to open the preferences dialog box. There you can adjust the preloader %. This is the percentage of the movie that will be downloaded before play begins. By default, it is set at 100%, which could explain why your movie does not begin until it is fully downloaded.

In my experience setting this % will work in some settings but not others. Still, it is worth a shot.

-Patrick

BeetleJuice
  • 39,516
  • 19
  • 105
  • 165