2

My company has online courses, some linear, some are more of a playground. All of the courses have a lot of media assets that we stream from our media server. The courses update our database with user results and information.

It looks like SCORM wants all of the contents of a course placed into one package. Would it be possible to stream media content to a SCORM course? Could we still save data on our own server? Any tips for a newbie?

Nick
  • 841
  • 2
  • 9
  • 30

2 Answers2

2

Nick,

You are correct that most content providers place their SCORM content on the learning server but it does not have to be that way. With proper development, you can have all your content on your server, logging usage, displaying video and other content while maintaining proper communication with the LMS.

SCORM content uses javascript which modern browsers ban from interacting with pages between two different domains. Two URLS like www.learningserver.com and www.yourcontent.com would be blocked by default from interacting in the way that SCORM requires. Sometimes called cross domain policy.

There are a few ways to circumvent this ban. Please see: Ways to circumvent the same-origin policy

I would suggest you use a technique that employs the following:

  1. A frameset (or iframe) that includes the below code hidden and the course content below
  2. A small file that is provided with the SCORM package, that discovers the LMS API and waits for messages from the parts mentioned below using the postmessage techniques described here: https://developer.mozilla.org/en/DOM/window.postMessage. This technique works well for IE8+ and all other browsers.

    • stick with SCORM 1.2 as it is better supported
    • dynamically include http or https urls to your code. Many LMS are using HTTPS these days and you'll need to account for it.
    • all of the SCORM interaction happens here but is initiated by the content frame described below. Some methods like LMSInitialize (SCORM1.2) or LMSFinish and SetValue("cmi.core.session_time","hh:mm:ss.s") can be run independent of the content window if preferred.
    • at a minimum, most consumers of SCORM content want LMSInitialize, LMSFinish, bookmarking and session_time.
  3. A content frameset (or iframe for modernity) that communicates score or other information back to the LMS local content that communicates with the API using the postmessage technique described in the URL listed

You can find sample SCORM content in the link below:
http://scorm.com/scorm-explained/technical-scorm/golf-examples/

Use the simple examples and follow the format for the manifest and SCORM API.

Community
  • 1
  • 1
joel
  • 157
  • 1
  • 8
  • Would it be a single page course where all of the navigation takes place in the iframe? – Nick Apr 15 '14 at 13:24
  • @Nick Yes, that single page would be part of the course package, and everything visible to the learner would be placed in the iframe. All javascript for that single page could sit on the LMS or on your own server (as script tags do not have to follow the cross domain policy). I haven't seen any examples of courses that put this all together but maybe I can add a simple example here later today or so. – joel Apr 15 '14 at 15:29
0

Nick, Just with like Content Delivery Networks, your media server can host the JavaScript, CSS, Movies and other assets, but you would need at minimum an HTML file that points to these that you'd package for import on a LMS. Because you may have HTTP/HTTPS protocols you need to watch out for that to. Most CDN links (I'll use cloud flare as an example - http://cdnjs.com) you'll notice don't have the protocol just "//cloudflare.com/path/to/asset.ext".

Alternatively to IFRAMEs, you can also show / hide tags in HTML, or load in external HTML sources via AJAX. Some even go as far as using http://handlebarsjs.com, http://leonidas.github.io/transparency, and other template systems for joining HTML to Data (JSON).

GL

Mark
  • 2,429
  • 20
  • 20