我在使用 VideoJS 时遇到问题,我试图播放录制到 Kaltura 的视频,但我只能让它显示为 100x100 像素方形视频。
脚步:
- 我使用 Kaltura Recorder 录制视频。
- Kaltura 保存视频并触发包含视频条目 ID 的“AddEntryComplete”javascript 消息
- 当我收到消息时,我访问 Kaltura 的 MediaService“Get”方法,该方法检索 Flavor Assets。
- 然后我调用 FlavorAssetService.GetDownloadUrl(assetId, useCdn=true) 来获取我用于返回的每个资产的 URL
- 我将返回的 Urls 添加为我的 VideoJS 播放器上的源并生成播放器
问题是,在录制后的最初几分钟内,视频显示在播放器中,但它卡在 100x100 像素的正方形中。
视频播放器呈现为我指定大小的 Adobe Flash Player,左上角的小视频,其余区域为黑色。
如果我将 Flash Player 的大小更改为小于 100 像素(例如宽度 = 720 像素宽播放器的 10%),则视频会被播放器区域的边缘覆盖。
几分钟后,Kaltura FlavorAssetService.GetDownloadUrl 开始返回多种风味。当时的 VideoJS 播放器在网页刷新后开始正确显示 mp4 版本的风味。
任何人都知道如何拉伸 Flash 视频以填充整个播放器,或者是否有其他方式我应该检索 Kaltura 视频的 URL?
谢谢!
2014 年 12 月 17 日更新
在 Chrome 和 IE11 中(还没有尝试过其他浏览器),播放器中没有 Duration 时间 - 时间只计算到视频结束
在 IE11 中,除了没有持续时间之外,我还收到一个错误弹出窗口,我可以单击继续以显示视频播放器:
“TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 com.videojs::VideoJSView/sizeVideoObject() 在 com.videojs::VideoJSView/onDimensionUpdate() 在 flash.events::EventDispatcher/dispatchEventFunction () 在 flash.events::EventDispatcher/dispatchEvent() 在 com.videojs::VideoJSModel/broadcastEvent() 在 com.videojs.providers::HTTPVideoProvider/onNetStreamStatus()"
2014 年 12 月18 日更新 - 发现我可以通过获取我的播放器 (myPlayer) 的实例来设置 Flash 视频的尺寸,然后在 .ready 的函数中,我可以调用 this.dimensions()。这仍然使视频保持正方形,但是使用我尝试过的示例编号,我播放了一个 450x450 像素的 flash 视频-尽管播放器中仍然没有持续时间...
这是当前的代码:
var newPlayer = videojs(<parameters - can fill later if needed>);
newPlayer.ready(function () {
player.dimensions(640, 480); // --- changes the video size to 450x450
this.on("ended", function () {
videoEndedVideoJs();
});
});
2014 年 12 月 22 日更新 根据我发现的 FLV 查看器,看来 Kaltura 的初始视频没有返回任何元数据。我发现来自 Kaltura 的 Get 调用返回了一个持续时间。我可以调用 newPlayer.duration 来设置持续时间,但只能以整秒为单位。玩家计数,但搜索栏延伸到玩家的右侧。