2013-10-15 3 views
2

У меня есть несколько вопросов об Android и SCORM. В обеих областях я довольно новичок, и я провел один вечер, выкапывая сеть в поисках ответов.Воспроизведение SCORM на устройствах Android

Темы, которые я нашел, касались синхронизации пакета SCORM с LMS, но мне это не нужно. Мне просто интересно, как играть (и просто играть, не нужно никакой синхронизации или отслеживания) SCORM-пакет на Android-устройстве (планшет Lenovo с ОС Android 4+). Если я попытаюсь создать собственное приложение, которое позволяет просматривать локальные пакеты SCORM, смогу ли я запустить SCORM с помощью компонента WebView?

Я нашел этот учебник:

http://support.scorm.com/entries/21826060-RSOfflinePlayer-Developer-Tutorial

который имеет раздел:

Воспроизведение содержимого и Syncing Результаты

где я нашел несколько интересных исходный код около настраивая этот компонент WebView для воспроизведения содержимого SCORM, но я не уверен, нужен ли мне RSOfflinePlayer.jar для этого.

Я также слышал, что если устройство поддерживает Flash, я смогу запустить SCORMs с браузером - это правда?

Возможно, вы знаете какое-либо приложение, которое может это сделать? Или библиотеку, которая могла бы помочь?

Есть ли кто-нибудь с опытом:
1) Java SCORM API:

бы вставить URL, но мне нужно больше репутации

2) Celine

https://code.google.com/p/celine-scorm/

Любая помощь будет воспринята не только мной, но и детьми с различными видами заболеваний (мы просто учащиеся, пытающиеся им помочь).

ответ

3

Хавьер почти справа. Тем не менее я попытаюсь объяснить это снова. Возможно, вы соберете больше информации из этого.

Каждый SCO - это в основном почтовая веб-страница. Вам нужно распаковать его и искать imsmanifest.xml, найти там начальный файл (index.html, player.html, что-то вроде этого). Он НЕ будет находиться под ресурсами. Сначала вам нужно посмотреть на Organizations > Organization > Item > Identifierref, который даст вам удостоверение личности. Затем вы должны посмотреть значение Resources > Resource with the above ID > href. Это файл, который вы ищете.

Пример (index.html это файл вам нужно):

<organizations default="someorg"> 
    <organization identifier="someorg"> 
    <title>Some Title</title> 
    <item identifier="CourseItem01" identifierref="SCO_Resource_01" isvisible="true"> 
     <title>SCO Title Here</title> 
    </item> 
    </organization> 
</organizations> 
... 
... 
<resources> 
    <resource identifier="SCO_Resource_01" type="webcontent" adlcp:scormtype="sco" href="index.html"> 
    <file href="index.html"/> 
    <file href="SCORM_API_wrapper.js"/> 
... 

После того, как вы нашли его, просто откройте его в WebView, и он будет пытаться подключиться к SCORM API в родительском окне. Вам нужно будет предоставить некоторые фиктивные функции, чтобы обмануть его, подумав, что он подключился к LMS и продолжал, как обычно. В противном случае он будет либо терпеть неудачу, либо бросить предупреждения на вас.

+0

Спасибо за ответ (это не очень популярный вопрос, поэтому большое спасибо). У меня есть один вопрос: мне нужно установить флеш-плеер? Это зависит от пакета - некоторые нужны, другие - нет? Во всяком случае, теперь я могу хотя бы начать работать над этим проектом, так как я получил устройство сегодня ;-) –

+0

Пакет scorm - это не что иное, как прошитая веб-страница, так что да, это зависит от веб-страницы. Он может или не может требовать Flash, Java, Silverlight, что у вас есть. Большинство современных инструментов разработки scorm производят вывод html5, в то время как большинство старых инструментов используют Flash для воспроизведения контента. –

3

У меня нет опыта работы с Android, но у меня есть опыт работы с SCORM.

Чтобы воспроизвести объект SCORM, вам нужно открыть нужный файл в правильной среде, правый файл указан в файле imsmanifest.xml, который всегда будет на верхнем уровне почтового пакета, вы должны искать что-то вроде этого:

<resources> 
    <resource identifier="546468" type="webcontent" href="index.htm" adlcp:scormtype="sco"> 
    <file href="index.htm" /> 
    </resource> 
</resources> 

Это означает, что вы должны открыть файл index.htm в верхнем уровне, в общем, вы должны смотреть на первый ресурс с adlcp: scormtype = «SCO» (если вам нужно более подробную информацию см. в спецификации SCORM).

Когда эта страница загружается, он будет искать объект API, он должен быть в родительском окне, или родительский фрейм, вы будете нуждаться в фиктивный SCORM API, что-то вроде:

function ScormAPIClass() 
{ 
    this.GetLastError = function(){return 0}; 
    this.GetErrorString = function (param){return ""}; 
    this.GetDiagnostic = function (param){return ""}; 
    this.SetValue = function (element, value){ 
               //you need something else here 
               return true}; 
    this.GetValue = this.SetValue = function (element){ 
                 //you need something else here 
                 return true}; 
    this.Initialize = function (param){return true};; 
    this.Terminate = function (param){return true}; 
    this.Commit = function (param){return true};; 
    this.version = "1.0"; 
} 


window.API_1484_11 = new ScormAPIClass(); 

The SCORM объектов предположим, что вы работаете API, поэтому, если функции set и get не являются реальными, это может генерировать ошибки в зависимости от логики объекта. Кроме того, I не проверял код, только чтобы дать вам представление о том, что вам нужно.

Я надеюсь, что это поможет вам.

+0

Спасибо за ответ, это действительно помогло понять основы SCORM. Как только я получу это устройство, я начну работать над этим, и я поделюсь результатами. –

+0

Прошу прощения за глупый комментарий, но каждый может мне дать ссылку на скачивание RSOfflinePlayer.jar. Google привел меня к нулю – meaholik

2
  1. Прежде всего, вам нужно понять структуру Scorm.

  2. Вы можете увидеть, что пакет Scorm представляет собой zip-файл, содержащий несколько папок справа и файл манифеста.

  3. Сначала вы должны разархивировать этот пакет ZIP Scorm, а затем вам нужно проанализировать этот файл imsmanifest.xml и сохранить два списка, содержащих заголовки и другие адреса html-файлов, соответствующих этому заголовку.

  4. Я использовал парсер sax2r2 для анализа этого файла манифеста и получил два списка массивов, содержащих заголовок и другие адреса html-файлов.

  5. Позже вам просто нужно заполнить список IOS массивом титров, и когда пользователь нажимает на любой заголовок этого списка, вы получаете позицию списка и извлекаете адрес html-файлов, соответствующих этому заголовку, из списка массивов адресов.

  6. Наконец, вы можете открыть html-файл в веб-обзоре своей IOS, убедитесь, что включены параметры, необходимые для открытого файла scorm html5.

В андроиде Я включил и установил эти значения, это java-код, но он может вам помочь.

WebViewClient webViewClient = new WebViewClient(); 
    webView.setWebViewClient(webViewClient); 
    webView.clearCache(true); 
    webView.getSettings().setUseWideViewPort(true); 
    webView.setInitialScale(1); 
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.clearHistory(); 
    webView.getSettings().setAllowFileAccess(true); 
    webView.getSettings().setDomStorageEnabled(true); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setPluginState(WebSettings.PluginState.ON); 
    webView.getSettings().setLoadWithOverviewMode(true); 
    webView.getSettings().setUseWideViewPort(true); 
    webView.getSettings().setPluginState(PluginState.ON); 
    webView.loadUrl("file://" + open_scorm.scorm_path 
      + open_scorm.scorm_name + "/" + open_scorm.href.get(0)); 

Webview используется для открытия HTML/html5 файлов в андроиде и я включил выше настроек в андроиде, эти настройки по умолчанию в Android, может быть в ИОС вы просто должны загрузить HTML-файл и ДНТ иметь для включения всех этих значений.

В приведенном выше вы можете увидеть, что я извлекаю href.get (0), который является первым html5-файлом scorm.

Простыми словами вам просто нужно распаковать scorm, проанализировать файл imsmanifest.xml и получить данные из него и использовать его для открытия/анализа scorm.

Смежные вопросы