如何在 ActionScript 中找到实时 RTMP 流何时停止?
Posted
技术标签:
【中文标题】如何在 ActionScript 中找到实时 RTMP 流何时停止?【英文标题】:How to find when live RTMP stream stops in ActionScript? 【发布时间】:2016-06-16 05:32:56 【问题描述】:我目前有以下代码,其中streamVideo
是一个 FLVPlayBack 组件:
streamVideo.addEventListener( VideoEvent.STATE_CHANGE, onVideoStateChange );
streamVideo.isLive = true;
streamVideo.source = "rtmp://mystreamurl";
function onVideoStateChange(evt:VideoEvent):void
var streamVideo:FLVPlayback = evt.target as FLVPlayback;
switch (evt.state)
case VideoState.CONNECTION_ERROR:
trace( 'Connection error' );
break;
default:
trace( 'Player is: ' + evt.state );
当我的直播开始时,这会给我Player is: playing
,但当我的直播结束时,我不会收到任何通知。
【问题讨论】:
【参考方案1】:我记得在玩 Adobe Cirrus 和 netstreams 时遇到过类似的问题。我不确定这是否可行,但请尝试检查您的 streamVideo 的 metaData 属性下的 videoDataRate == 0 是否。
【讨论】:
不,这似乎对我不起作用。我正在使用trace
将其输出,即使在流停止并且视频在 FLVPlayback 中没有继续播放后,它仍然给我 1800。
如果您找不到其他方法...我只会使用 netstream 和视频对象。我知道在 netstream 类中你可以访问 bytesAvailable。当它为 0 时,流结束(或者在我的情况下,用户停止说话)。虽然他们可能会以另一种方式,但如果你的时间不多了,你有一个解决方法。
嗯,好的 - 我将如何设置 bytesAvailable?我有一个NetStream
对象。
我也在尝试检测流何时开始 - 使用 NetConnection
和 NetStream
怎么可能?以上是关于如何在 ActionScript 中找到实时 RTMP 流何时停止?的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核实时调度类 ④ ( 实时运行队列 rt_rq 源码分析 | 实时运行队列 rt_rq 结构体字段分析 | activert_nr_runningcurrnext 字段 )
ActionScript3 gotoAndPlay 未找到框架。
Linux 内核实时调度类 ⑦ ( 实时调度类核心函数源码分析 | dequeue_task_rt 函数 | 从执行队列中移除进程 )
Linux(内核剖析):11---进程调度之实时调度策略(SCHED_FIFOSCHED_RRMAX_RT_PRIO实时优先级)