- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个至少让我走了一个星期。我正在尝试将视频文件录制到 AMS。它几乎在所有时间都运行良好,除了大约十分之一或 15 个录制 session 之外,当我关闭流时,我从未在我的网络流上收到来自 AMS 的“NetStream.Unpublish.Success”。发生这种情况时,我正在使用 rtmpt 连接到 AMS,它似乎在 rtmp 上工作正常。此外,这似乎只发生在 mac 上的 safari 中,但由于它是如此断断续续,我不太相信。这是我的基本流程:
// just a way to use promises with netStatusEvents
private function netListener(code:String, netObject:*):Promise {
var deferred:Deferred = new Deferred();
var netStatusHandler:Function = function (event:NetStatusEvent):void {
if (event.info.level == 'error') {
deferred.reject(event);
} else if (event.info.code == code) {
deferred.resolve(netObject);
// we want this to be a one time listener since the connection can swap between record/playback
netObject.removeEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
}
};
netObject.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
return deferred.promise;
}
// set up for recording
private function initRecord():void {
Settings.recordFile = Settings.uniquePrefix + (new Date()).getTime();
// detach any existing NetStream from the video
_view.video.attachNetStream(null);
// dispose of existing NetStream
if (_videoStream) {
_videoStream.dispose();
_videoStream = null;
}
// disconnect before connecting anew
(_nc.connected ? netListener('NetConnection.Connect.Closed', _nc) : Promise.when(_nc))
.then(function (nc:NetConnection):void {
netListener('NetConnection.Connect.Success', _nc)
.then(function (nc:NetConnection):void {
_view.video.attachCamera(_webcam);
// get new NetStream
_videoStream = getNetStream(_nc);
ExternalInterface.call("CTplayer." + Settings.instanceName + ".onRecordReady", true);
}, function(error:NetStatusEvent):void {
ExternalInterface.call("CTplayer." + Settings.instanceName + ".onError", error.info);
});
_nc.connect(Settings.recordServer);
}); // end ncClose
if (_nc.connected) _nc.close();
}
// stop recording
private function stop():void {
netListener('NetStream.Unpublish.Success', _videoStream)
.then(function (ns:NetStream):void {
ExternalInterface.call("CTplayer." + Settings.instanceName + ".onRecordStop", Settings.recordFile);
});
_videoStream.attachCamera(null);
_videoStream.attachAudio(null);
_videoStream.close();
}
// start recording
private function record():void {
netListener('NetStream.Publish.Start', _videoStream)
.then(function (ns:NetStream):void {
ExternalInterface.call("CTplayer." + Settings.instanceName + ".onRecording");
});
_videoStream.attachCamera(_webcam);
_videoStream.attachAudio(_microphone);
_videoStream.publish(Settings.recordFile, "record"); // fires NetStream.Publish.Success
}
最佳答案
我会尝试 2 个不同的 NetConnection 对象,一个用于记录,一个用于重放。这将消除您围绕监听器添加/删除和连接/重新连接/断开连接逻辑的复杂性,并且 IMO 会更清晰。
NetConnections 很便宜,而且我总是为手头的每个任务使用一个。另一个优点是您可以在启动时连接两者,以便立即准备好重放连接。
我之前没有看到这里使用过 Promise,但我没有资格评论这是否会导致问题。
关于actionscript-3 - AMS 有时不会通过 rtmpt 收到取消发布命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116218/
我如何连接到 FluorineFx RTMPT 服务器? 以及如何配置 FluorineFx RTMPT 服务器? 我可以在没有安装 IIS 的情况下启动 FluorineFx RTMPT 服务器吗?
我正在尝试通过 RTMPT 与 Red5 服务器建立连接。我正在使用 Red5 客户端 jar red5-client-1.0.jar。在尝试连接时,以下是成功的。 POST/open/1 HTTP/
这个至少让我走了一个星期。我正在尝试将视频文件录制到 AMS。它几乎在所有时间都运行良好,除了大约十分之一或 15 个录制 session 之外,当我关闭流时,我从未在我的网络流上收到来自 AMS 的
我们已经遇到这个问题很长时间了,但仍然无法找出问题出在哪里。我们的应用程序使用 RTMP 进行视频流传输,如果 Web 客户端无法连接,则会跳到 RTMPT(基于 HTTP 的 RTMP)。这会导致视
我正在为 PC 浏览器开发音频流网络服务。 我们想使用 rtmpt(e) 协议(protocol)通过 Flash 插件进行流式传输。 主 HTML 页面有 https:// URL。 问题是,当我们
我们目前使用 CloudFront 流分发与 JW Player 6 和 RTMP 协议(protocol)。但是,我们的一些企业用户告诉我们他们看不到视频,是因为他们将 RTMP 的 1935 端口
我是一名优秀的程序员,十分优秀!