1

我正在使用 Adob​​e Media Server 4.5 和 FLEX 4.6.0 sdk。

我有一个 .swf 应用程序,它通过 RMTP 连接到 Adob​​e Media Server,从用户的网络摄像头和麦克风获取音频和视频输入,并执行NetStream.publish()将文件流式传输到服务器。随着用户录制视频,文件的大小会增加。有时,生成的文件最终大小为 1kb。

是什么导致了这种情况,我该如何防止它,或者以其他方式结束会话并通知用户出现问题?

编辑:

一些可能有助于识别问题的其他问题/评论/意见:

这只发生在 1% 的时间里,我不确定我可以用什么来解决这个问题。在 AMS 生成的日志文件过期之前,我一直无法捕捉到这种情况。

我的理论是,当客户端在某处失去连接时会发生这种情况。

只要 NetStream 正确发布,文件的大小就会增加。如果文件没有增长,这应该意味着 NetStream 失去了连接。由于文件为 1kb,因此流必须在开始发布后立即失去连接。

我还在 Notepad++ 中打开了文件并得到了这个:

FLV [SOH][NUL][NUL][NUL][NUL] [NUL][NUL][NUL][NUL]

另一种理论是某些东西有机会覆盖我的文件,但这不太可能

4

1 回答 1

1

有同样的问题,但只有 0.001% 的情况。

最常见的问题是由于麦克风而发生的。需要在发布流之前检查麦克风。

另一个可能的问题:

  • 客户端中断流程 -NetStream.Record.Stop
  • 退出应用程序 -onDisconnect
  • Сlient 禁用麦克风/摄像头
  • “FLV 段缓存已满”

如果在服务器上调用onUnpublish事件,可以发出警告。

publish ()我也在客户端的方法后使用定时器,如果3-5秒后NetStream.Record.Start没有调用事件,那么客户端有问题,应该防止它。

于 2014-04-02T08:27:57.247 回答