Determining presentation length from presentation.xml

Apr 11, 2012

When we "Publish to Web" out of Articulate Presenter, the resulting export includes a file called presentation.xml. My goal is to be able to parse this XML file to determine the duration of the entire presentation, i.e., what appears within the presentation as the overall length.

In looking through a sampling of presentation.xml from various exports, I've concluded that there are a few ways that duration is recorded within the XML and it appears as if there is not a single field that contains the overall presentation length. Therefore, my approach is to add up the durations of the individual slides.

The reason for my post is to confirm that I've considered all the possible ways an individual slide's time is recorded within the XML. Since I found at least three, I'm thinking that there might be others that I haven't seen based on the way that the presentation can be built.

First, and easiest, is the <SlideTime> value. This is in seconds and so it's easy to just add these up.

Second, if there is a Flash object embedded within a slide (and therefore a <flashobjects> tag), it seems that <SlideTime> is still there, but is in fact irrelevant if, for example, that embedded object is a movie that has its own duration. In such cases, I've identified: flashobjects: flashobject: duration within the XML and can use this (knowing that it is in milliseconds) and ignore the <SlideTime> for that slide.

Third, if there is a Flash object embedded within the slide that doesn't have a <duration>, it can have, instead, both <framerate> and <framecount>. Again, I can do the math with these two numbers (still working in milliseconds) to figure out the duration of that slide (framecount divided by framerate).

My question, therefore: Are there any other ways that the duration of a given <Slide> can be represented within presentation.xml?

And, finally, a feature request: add a new field within presentation.xml that does all this for me <PresentationDuration>. If it matters, presentation.xml is generated via:

<pptaddin>Articulate Presenter version 6 Pro,build10</pptaddin>

Thanks,

-KevinB

2 Replies
David Anderson

Hi Kevin,

Are you trying to gauge the course time from slide frames? Something like Engage or Quizmaker may only be one frame, but the time to read and answer can vary. Another idea is to measure based on audio duration. That assumes, of course, that the course is played start to finish without any pauses.

Do you know about the Elapsed time option in Player Templates?

Kevin Bolduan

David,

Thanks for the info. What I'm really talking about here is content generated from Presenter, specifically that which has been "Published to Web." I believe that the box you referenced ("Elapsed and total presentation time") has been checked during the creation process, as I do see that information on our presentations.

What I'm trying to do is, based ONLY on the presentation.xml document, figure out what that "total presentation time" actually is (in minutes and seconds). I know users may spend more or less time on the slide, but that total presentation time gives us a good benchmark. Through other means we're determining how long the presentation is actually open, so if we compare that to the total presentation time, we can get at least a rough idea as to the student's engagement.

Because I'm trying to parse the XML that, of course, wasn't really meant for public consumption, I wanted to ensure that I was getting it "right" in the parsing I was doing (since it appears to be somewhat inconsistent).

Somewhere/somehow checking that box you noted is calculating and displaying the total presentation time for the user; I just want to be sure I'm doing that calculation the same way.

Parsing presentation.xml I was able to determine that a certain "Publish to Web" presentation (called "35mm_Overview")" was 14:01. And, as you can see from the screen shot, I got it right. I just want to be sure that the three "durations" I noted above covers all possible ways presentation.xml is indicating durations.

thanks,

-KevinB

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