我正在服务器端录制实时流(使用FMS 3.5.3)。 录制视频录制时停止播放。 我检查录制的视频长度,总是不同,有时只有2分钟,有时10分钟,有时20分钟
有人遇到过这个问题吗? 如果你能帮助我解决这个问题会很高兴!
代码:
Client.prototype.RecordStart = function()
{
trace("RecordStart");
var ns = Stream.get("mp4:test:f4v");
if (ns)
{
ns.record();
ns.play("livestream",-1,-1,false);
}
}
Client.prototype.RecordStop = function()
{
trace("RecordStop");
var ns = Stream.get("mp4:test.f4v");
ns.record(false);
ns.play(false);
ns.flush();
}
答案 0 :(得分:1)
错误就在这里
var ns = Stream.get("mp4:test:f4v");
应该是"mp4:test:f4v"
而不是"mp4:test.f4v"
。
答案 1 :(得分:0)
万一你仍然遇到问题,ctdavids提供的解决方案:https://forums.adobe.com/thread/865510为我工作!
问题在于
var ns = Stream.get(“mp4:test:f4v”);
将记录流分配给在函数内具有范围的ns变量。因此,在几分钟内,变量将被垃圾收集。这将使录制突然停止,没有状态通知或错误消息。
要解决此问题,只需将变量放在全局对象中,例如
var ns = Stream.get(“mp4:test:f4v”); strMaps [recordingStreamName] = ns;
其中strMaps是全局变量(Object),recordingStreamName只是录制的唯一名称。
停止录制时,可以使用
删除此全局参考删除strMaps [recordingStreamName];
希望这有帮助!