如何在SAP Authoring Tool中启用mp3内容类型

时间:2014-12-08 16:45:07

标签: sap scorm

我正在尝试使用SAP Authoring Tool玩一些SCORM课程。 当我尝试播放课程时,没有播放任何音频元素。

我检查过chrome控制台,这些mp3文件有404错误。它们存在但玩家找不到它们。

我已经尝试直接在浏览器中直接打开一些url播放mp3文件并出现下载对话框。似乎用于SAP内容播放器的服务器不支持mp3? 这是mp3网址的示例:

http://127.0.0.1:59128/lms/media/(1.XXX.0.12373953.)/my_test_course/statoil_sap_test_-2624/runtime_media/sound/kalimba.mp3

有没有办法配置SAP cpontent播放器以允许mp3播放?

当我尝试打开网址

http://127.0.0.1:49910/lms/media/(1.XXX.0.5732618.)/my_course/my_course/runtime_media/sound/eng/count_1.mp3

直接收到404错误。

尝试加载mp3音频时出现同样的错误。这是一个加载音频的代码(简称): 当我运行此代码时,我收到404错误:

$("#mySound").attr('src', getAudioElementPath());
var sound = $("#mySound")[0];
sound.play();

以下是Chrome网络控制台的完整请求和响应信息:

Remote Address:127.0.0.1:49910
Request URL:http://127.0.0.1:49910/lms/media/(1.XXX.0.5732618.)/my_course/my_course/runtime_media/sound/eng/count_1.mp3
Request Method:GET
Status Code:404 404 (NOT FOUND): /lms/media/(1.XXX.0.5732618.)/my_course/my_course/runtime_media/sound/eng/count_1.mp3
-----------------
Request Header
-----------------
GET /lms/media/(1.XXX.0.5732618.)/my_course/my_course/runtime_media/sound/eng/count_1.mp3 HTTP/1.1
Host: 127.0.0.1:49910
Connection: keep-alive
Accept-Encoding: identity;q=1, *;q=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36
Accept: */*
Referer: http://127.0.0.1:49910/lms/media/(1.XXX.0.5732618.)/my_course/my_course/start_page.html
Accept-Language: en-US,en;q=0.8,sr;q=0.6,es-419;q=0.4,es;q=0.2
Cookie: JSESSIONID=62F306F8F6BFBDBCD91AE22D2BA44F01
Range: bytes=0-
-----------------
Response Headers
-----------------
HTTP/1.1 404 404 (NOT FOUND): /lms/media/(1.XXX.0.5732618.)/my_course/my_course/runtime_media/sound/eng/count_1.mp3
Server: Apache-Coyote/1.1
Cache-Control: no-cache
Content-Type: text/html;charset=utf-8
Content-Length: 1331
Date: Wed, 10 Dec 2014 15:21:11 GMT

无论如何,此代码返回状态200(OK):

$http.get(getAudioElementPath()).
    success(function(data, status, headers, config) {
        handleSuccessPath();

    }).
    error(function(data, status, headers, config) {
        handleErrorPath();
    });

知道如何在SAP Authoring Tool中播放mp3文件吗?

这是SAP Content Player上存在问题的示例课程: https://www.dropbox.com/s/mkx2g4eiz7xng6t/sap_test.zip?dl=0

本课程适用于SCORM CLOUD但SAP Content Player存在问题。

我还在SAP门户网站上发布了一个问题......寻求解决方案: http://scn.sap.com/message/15611144#15611144

1 个答案:

答案 0 :(得分:0)

我想我已经找到了为什么mp3在SAP竞争播放器中也没有播放过。 问题出在com.sap.hcm.ls.lms.servlets.control.MediaHandler类

SAP试图通过MediaHandler服务器提供mp3文件,但是有一个错误。 这是一个有问题的代码:

String range = request.getHeader("Range");
MediaLoader.ByteRange rangeSpec = null;
if ((range != null) && (range.startsWith("bytes=")))
{
  range = range.substring(6);
  int inx = range.indexOf("-");
  if (inx > 0)
  {
    int start = Integer.parseInt(range.substring(0, inx).trim());
    int end = Integer.parseInt(range.substring(inx + 1).trim());

    rangeSpec = new MediaLoader.ByteRange(start, end);
  }
}

首先,它从标题中提取“Range”,并期望采用格式“bytes = - ” 因此,有效值可以是“bytes = 0-100”或bytes = 0-200 但在我们的例子中,“Range”的值为“bytes = 0-”,因此在解析时失败:

int end = Integer.parseInt(range.substring(inx + 1).trim());

在最后的错误处理期间,内部catch部分返回404:

response.sendError(404, "404 (NOT FOUND): " + path);

这是虚假信息。

SAP正在以一种非常有问题的方式处理标头属性解析时的错误 - 它说这种资源不存在!

这非常糟糕。能够提供一些反馈以便让用户了解mp3没有播放的信息会很好。

所以definitelly这是SAP内容播放器的BUG。