我正在尝试使用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
答案 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。