【问题标题】:How to find when live RTMP stream stops in ActionScript?如何在 ActionScript 中找到实时 RTMP 流何时停止?
【发布时间】: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,但当我的直播结束时,我不会收到任何通知。

【问题讨论】:

    标签: actionscript-3 flash rtmp


    【解决方案1】:

    我记得在玩 Adob​​e Cirrus 和 netstreams 时遇到过类似的问题。我不确定这是否可行,但请尝试检查您的 streamVideo 的 metaData 属性下的 videoDataRate == 0 是否。

    【讨论】:

    • 不,这似乎对我不起作用。我正在使用trace 将其输出,即使在流停止并且视频在 FLVPlayback 中没有继续播放后,它仍然给我 1800。
    • 如果您找不到其他方法...我只会使用 netstream 和视频对象。我知道在 netstream 类中你可以访问 bytesAvailable。当它为 0 时,流结束(或者在我的情况下,用户停止说话)。虽然他们可能会以另一种方式,但如果你的时间不多了,你有一个解决方法。
    • 嗯,好的 - 我将如何设置 bytesAvailable?我有一个NetStream 对象。
    • 我也在尝试检测流何时开始 - 使用 NetConnectionNetStream 怎么可能?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多