FLV sound continues playing when navigating to new Slide

Feb 26, 2015

Hello everyone. I've coded a custom video player in Flash with a custom scrubber. I published the .swf and embedded into an Articulate '09' slide. Almost everything works great. However, if the video is playing and I then use the Articulate interface to go forward or back to a different slide, the audio from the FLV continues playing when I arrive at the next slide. If I go back to slide with video, the video is not playing, only the audio continues to play. If I play the movie again, you hear the sound from the video and the phantom audio that continues playing no matter what I do. I've tried using the artModuleAPI deactivate event to unload the .swf playing the FLV. That event only seems to get captured though if the .swf is part of a custom toolbar. Is there any event that anyone knows of to let me know when user has hit the forward or backward arrow, or used the table of contents, to go to another slide. This is for an ordinary .swf embedded in a PowerPoint slide as part of a course. Thanks many for any suggestions.

6 Replies
Paul Colby

Sorry, that is not how I am playing this movie. I am using the MediaDisplay component in Flash. I have a flash file with some other introductory animation, then at the end of the timeline, the user can click a button to open the video/MediaDisplay component. I have my own controls, etc. I am embedding the published .swf into the slide through the Articulate/Flash option. Keep in mind, it is a .swf I am embedding that has the movie/MediaDisplay component in it. I am not embedding the .FLV file. That works fine, no problem there on other screens. If it helps, I can try to make a sample file, since all of the stuff I am doing is proprietary and I can't send as is.

Paul Colby

Okay, I created a little demo with all the files you should need to see exactly what I'm doing. Please check it out and let me know if you have any advice. To me, it seems like Articulate is not cleaning up after itself when navigating from screen to screen. Currently, I am attempting a brute force approach to make sure Articulate completely unloads .swfs from a previous slide.

Paul Colby

Thanks for your help, but I found a solution that may save some other poor soul some beating of his/her head against the wall.

1. In any Flash movie that has a video in it, add the following to code to the action layer on the main timeline:

_global.videoSliderNumber = _level0.ArtAPI.GetCurrentSlide();

2. Create a Flash file to be used for a custom poweredbypanel and add the following code to the action layer on the main timeline:

onEnterFrame = function ():Void
{
    if (_global.videoSlideNumber)
    {
        if (_global.videoSlideNumber != _level0.ArtAPI.GetCurrentSlide())
        {
            stopAllSounds();
            _global.videoSlideNumber = undefined;
        }
    }
};

stop();

3. That's it. The stopAllSounds() call is what was needed. If you already have a poweredbypanel, just add the code in step 2 to it.

Good luck all!

This discussion is closed. You can start a new discussion or contact Articulate Support.