'Continue' block completion with embedded video

Aug 14, 2019

Hi, 

I've added a 'continue' block (under an embedded video block) and changed the completion type to 'complete block directly above'. However the 'continue' block always changes to its completed state whenever the course is viewed.

I know the state change of the 'continue' block works as expected with a video uploaded directly to Rise, but I was hoping to restrict progress until the learner has viewed an embedded video. Does anyone know if this is possible? 

Thanks!
Scott

19 Replies
Crystal Horn

Thanks, Phil!

Here's the relevant info from our user guide on what continue blocks monitor:

You can use continue blocks to require learners to complete carousel blocks, checkbox lists, audio blocks, video blocks, accordions, tabs, labeled graphics, processes, sorting activities, flashcards, knowledge checks, and Storyline blocks. (Although button blocks and attachment blocks are interactive, you can’t require learners to complete them.)

Gerry McAteer

Hi Scott

One way which I have utilised the conditional continue in Rise for playing an embedded video (YouTube) is by using the Storyline block.

1. Open an new Storyline 360 file (you only require one slide).
2. On YouTube copy the embed code, also take a note of how long the video plays for.
3. In storyline, use the Insert>>Video>>Video from website.
4. Paste the embed code into the popup dialog window.
5. Create a new trigger – Complete course as Completed/Passed When the timeline reaches time (enter the duration of the Youtube video in seconds i.e. if it plays for 3mins enter 180s)
6. Publish the Storyline file to Review 360.
7. Under the Tracking parameters, select Track using complete course trigger.
8. In Rise insert a Storyline block and find your published YouTube slide.
9. Insert a Divider>>Continue block under the Storyline block – set completion Type to ‘Complete Block Directly Above’

Now you will find that the continue button will become active after the YouTube video has played. (Note: the if you pause the video the Storyline timeline will continue to play in the background so the continue button will become active at the time you have set for the duration of the storyline timeline.)

cheers

Gerry

 

Garrett Darland

Gerry thanks for your workaround tip. Very cleaver indeed!!

We just switched all our native Rise videos to embeds and are having the same problem as the original poster... :(

Quick Question - since we don't have a storyline developer or PC in our small in-house team - is there a way to make a generic timer in Storyline that we could put after all the past videos and future videos we will make. Have generic timers made at 30sec, 45sec, 60 sec.. etc and use as needed based on future video duration.  Put a timer below the video so the CONTINUE block refers to that.

Would that work? Or would the blank timer not have anything to reference as start point??

Thanks for your help - again :))

Garrett

Daniel Mitchell

Garrett,

I have two methods for timers in Storyline:

1. Add a layer that opens when [action occurs]. Place the continue button on the timeline of that layer at the desired timing, or set course completion when the timeline of that layer completes (really, any trigger that you need to be delayed).

The above is easy to build and easy to duplicate.

2. When layers aren't an option (usually because you are already on a layer when you need the timer), instead add a shape off-screen. Create a line animation and set that animation to the length of time you need (I think this method is limited to 59 seconds). Then, set a trigger based on when the animation completes.

This method works really well, but is limited to the length of line animation. (You could do multiple animations to make this last longer, but at that point, it starts to get silly).

Someday, Articulate will add an off screen timer that we can type in an amount of time, and have the timer begin after trigger, then set another trigger after timer completes. On that day, the people will rejoice (or at least I will).

Gerry McAteer

Thanks Garrett, you are correct you would need a trigger to activate the SL counter so that it would know when you have started to watch the Youtube video, hence the reason for embedding the YouTube video within the Storyline block.

I previously created a countdown timer in SL using variables you can also easily change the duration by changing the duration variable to the time you are after. There is also a complete course trigger when the time-up is displayed. I have attached the SL for you to have a look at. @daniel mitchell 

 

Cheers Gerry

 

Sarah Gillespie

Hi,

I'm just wondering if it's possible to add text or images after a continue block in Rise 360?

We're trying to create a footer style element and need to use continue blocks to track user's progress in the module and ensure they've watched videos in full.

However, it seems anything added below a continue block is hidden? Is there a way to resolve this?

Thanks

Sarah Gillespie

Hi Crystal, thanks for getting back to me! 

Is there a way to display the hidden content? We need to feature two logos in bottom left and right hand corners below continue blocks, which act as a footer. 

I understand this might not be possible in Rise, but would we be able to achieve this in Storyline? Open to suggestions, it's just critical that we can include the footer below the continue buttons. 

Laurianne Horner

Quick question...does the embed video block have a "memory"? Meaning, if I have watched the video during testing in the player (in this case Stream), does the course remember that I already watched it? I ask because when I preview the block with the continue button added, it appears as I want it to, but once I export and load into LMS for testing, the continue block is activated even though I have not hit play on the embedded video.

Laurianne Horner

Thanks Karl!

I was just a bit confused because the User Guide, called out by Articulate Staffer Crystal Horn above, lists video blocks working with the continue button, but doesn't make a distinction that embedded videos won't work. Typically, Articulate is pretty good about calling out specific restrictions like this, so I wanted to double check that it wasn't a setting I was missing or user error, etc.

Side note, what a shame! Using embed links keeps the SCORM file size lower :( which helps with uploading in LMS...

T o

I'd like to propose an alternative approach involving the use of a Kaltura Playlist. This might seem a bit complex at first, but I believe it could be a safer option than a time-based approach.

Imagine having two videos in a Kaltura Playlist: the first video contains the content, and the second video indicates that "this video has completed". The videos would have the seek function disabled and their players hidden. These videos could then be added to the 'Play: My Videos' section in Storyline.

The Kaltura Playlist could then be shared and embedded. By editing the iframe, we could control what is displayed. For instance, we could use the [ nextPrevBtn.plugin ] and Right {Playlist ]. There seem to be numerous customisable options in the iframe code. One of these must hide the other videos so the learner can jump to the final video? 

With this setup, we would have an iframe containing two videos that can't be fast-forwarded. The only way to access the second video would be to watch the first one. As each video progresses, the URL in the playlist changes.

We could then use JavaScript in Storyline to monitor the URL in the iframe and change a variable. This would allow us to unlock the 'next' button via a variable when the playlist completes.

Here's a sample JavaScript code:

var iframe = document.createElement('iframe'); 
var url = "https://kaltura.com/playlist/dedicated/5_71op61/9_jaysta5y"; 
iframe.src = url; 
document.body.appendChild(iframe); 

var oldPath = url.split('/').pop();

iframe.onload = function() {
    var newPath = iframe.contentWindow.location.href.split('/').pop();
    if (newPath !== oldPath) {
        oldPath = newPath;
        // Change your variable here
    }
};

Althought I must admit that the JavaScript code provided assumes that the iframe's content (the Kaltura Playlist) is on the same domain as the parent page (the Storyline course). If they are not on the same domain, the same-origin policy will prevent the JavaScript from accessing the iframe's contentWindow.location.href due to security reasons which could be an issue?

Could this approach work for your needs? I'd appreciate any feedback or suggestions.