Interactive Video, Navigation Bookmarks

Intro

Interactive Video is without any doubt my favourite new feature in Captivate 2019. It makes adding some interactivity to a passive video very easy compared with the old workflows which I used to simulate such an interactive video in previous versions. I had in mind to blog about some possible workflows that could add even more functionality. A user posted a question today about Bookmarking for Navigation. I had already some workflows in mind, and want to share one of them with you. I tried it out on the sample project provided with Captivate. That project has only two bookmarks, which are labeled 'ExerciseBenefits' and 'O3Jump'. the workflow can easily be extended to more bookmarkst. We'll create a shape button to pop up a menu. 

Popup menu

To create the menu, which is hidden when the video starts, I used a shape,  but you can use a text caption as well. I filled that shape with one word for each of the bookmarks. In this case I used the words 'First ' and 'Second'. Those words will be indicated as hyperlinks. Hyperlinks have a lot more functionality than just pointing to an URL, as I explained in some blog posts.

Close button

Dropdown menu

The menu for hyperlinks is missing some options (which I regret): you will not see the option 'Jump to Bookmark' nor 'Execute Shared Action'. My only choice was to use the command 'Execute Advanced Actions'.  That means that you have to create as many advanced actions as you have bookmarks. They are very simple oneliners, but with a simple action or a shared action it would be a better workflow.  It is also impossible to prevent release of the playhead, but that is not really an issue in this case since we are creating navigation actions, and the video may continue to play when it gets to the chosen bookmark.

The shape with the hyperlinked texts needs to be invisible in output, and timed for the rest of the slide. If you have multiple video slides, and you want one menu for all videos,  time it for the rest of the project. Because the overlays are possible, you'll not have any problem to have the shape being visible on top of the video.

Menu Button

The menu button (which you could see in the screenshot with the popup shape) is a shape button. I added a custom state 'Close' to the 3 InBuilt states, where the label is changed from Menu to Close. To avoid confusion I took out the label from the Rollover and Down state which are used both for the open and closed version of the button:

The button is a toggle button, to track the visibility of the popup shape I needed a user variable (Boolean) which I labeled v_visib as usual. Default value = 0, which means the popup shape is closed and the Normal state of the button is active. When the button is clicked to open the popup, the state will change to Close, and the variable will be toggled. This leads to a conditional action which I have described/used already many times:


Conclusion

I hope you liked this workflow which is not included by default. You can add this toggle button to other buttons like an Audio/Mute and a CC button. If you missed it, you can find a workflow for that type of buttons in this blog post:.



Interactive Video Buttons

Intro

When I posted the article about Pausing the Timeline (part of the sequence of articles about that most important panel), I promised to add some use cases to illustrate using pause and pausing points. Let us start with a  simple use case, based on a recent forum question in this thread: Interactive Video Buttons


Use Case - description

It is clear that the user is not aware of the difference between pausing the timeline by an interactive object (pausing point) and by the command Pause. The idea is that the learner, while a video is playing, can launch a popup that has some static content (text, images...). While that popup is opened, the video should pause. On closing the popup the video should resume playing. The user proposed to have a close button for that purpose, which is the easiest solution (Scenario 1 below).   hyperlink instead of the close button as I described in this article: More is in a hyperlink - Close button

It could also be done with defining the open button as a toggle button Scenario 2).

For both scenarios it is necessary to insert the video as a multi-slide synchronized video to be able to control the video with Captivate functionality. If you insert the video as event video it will play totally independent from Captivate.

Scenario 1 

In this scenario the popup will appear with one button, and be hidden by another button or hyperlink. 

This makes it possible to have two actions, simplifies the setup: no need for a variable, no need for a conditional action. You can use two standard actions. If you want multiple buttons and popups, or expect to be using this work flow in other projects, I strongly recommend to create shared actions instead of advanced actions. This article will describe only the advanced standard actions.

Have a look at the setup of the slide. Look at the Timeline panel. It has only 3 objects (from bottom to top: video, shape button, popup). In the screenshot the shape button SB_Info is selected. It will open the popup 'Info'. Look at the Timing properties of the button. The option to pause is unchecked (which is not the default situation), the shape button is timed for the rest of the slide. The result is that the button will be active for the whole slide, there is no inactive part. 
The popup in this example is a shape used as text container, labeled 'Info'. That popup has to be invisible in output (eye icon in the Properties panel). If you expect that the slide can be revisited,  a better approach is to use the On Enter event of the slide to hide this popup 'Info'. To close the popup I preferred using a hyperlink over a close button.  The popup is ta single object. If you prefer to have a 'real' close button, you'll end up with two objects (text +  button). In that case you can group them, to reduce the number of commands for showing and hiding.

Standard Advanced Action ShowContent

This action is triggered by the Success event of the button SB_Info as you see in this screenshot:

After showing the popup (only one text container, can also be a group), I choose to disable the button SB_Info. If you want it to more user friendly, you can add a custom state 'Inactive' to that button and change to that state. This will avoid confusion for the user, some may expect that button to be a toggle, which is not the case in this first scenario. The last command will pause the timeline unconditionally, resulting in both video and audio to be paused.

Standard Advanced Action CloseContent

to be triggered by the hyperlink over the big X character:
if you prefer a Close button, this same action will be triggered by the Success event of that button; you can use exactly the same action. If you are using a responsive project, or HTML5 output only, the work flow with a button is to be preferred because the hyperlink event is not to be trusted with HTML5 output.

It is a similar advanced action (use the duplicate feature), with three commands which are the opposite of those in ShowContent: Hide (was Show), Enable (was Disable), and Continue which will release the Playhead, both video and audio will resume.

Scenario 2 

In this scenario aToggle button is used both for opening and closing the popup.

In that case you can use an approach similar to what I explained in: 1 action = 5 toggle buttons
It is a little bit more complicated because:
  • You need an extra custom state for the popup button which indicates that it changes to a close button after having opened a popup:
  • You'll need a variable to track the status: I will use v_visib, a Boolean, with value = 0 when the popup is not visible,
    and value = 1 when the popup is visible; since I used a shared action from an external library, that variable is created automatically.

  • You'll need a conditional advanced action to be triggered by the Success action of the button:, this is the advanced action version created based on the shared action:

More Possibilities

An interactive video will often be spread over multiple slides, to offer navigation buttons to different parts of the video. It is not a problem to have the scenarios available on all slides: time both the button and the popup groups for the rest of the project, always on top.

I mentioned the possibility to group a close button with text, but groups with more objects are possible as well: image, shape, animations. Group all together, hide the group On Enter for the slide, and you only have to replace the single object in the scenarios above by the group. 

Turn the actions into shared actions, and keep them in a separate project. You can open the Library of that project as an external Library in future projects. Especially the toggle action, it will save time because you don't have to create the user variable.

Future use case, example of Pausing the timeline, will be about audio. It is more complicated because there are several ways to use audio in Captivate, perhaps I will need more than one post.