如何检测 Kurento 媒体服务器(KMS)中的录制何时完成?

How to detect when recording completes in Kurento Media Server (KMS)?

我已经编写了成功建立从浏览器到 Kurento 媒体服务器 (KMS) 的 WebRTC 连接的代码。流记录在服务器端。录音文件几乎是立即创建的。当我关闭 PeerConnection 时,几分钟后录音文件会获取录音内容(直到那时它的大小保持为零)。

现在我的问题是:如何检测录音文件是否已写入磁盘并填充了正确的内容? Kurento 协议中有一些消息吗?我确实找到了 RecorderEndpoint#record(Continuation),但是 Continuation#onSuccess 立即被调用(当录制文件获得正确的内容时,几分钟后)。

恐怕没有实现这样的事件,虽然你描述的很有用。我建议您使用 watch service,因为此功能仍未计划,但我们会查看并研究是否以及何时包含它

更新 1:在 KMS6 中,您有 addMediaStateChangedListener 方法,因此您可以订阅 mediaStateChanged 事件的侦听器。在您的侦听器代码中,您可以检查媒体状态并将其与两种可能状态之一进行比较:CONNECTEDDISCONNECTED

当前开发版本 (6.4.1-dev) 在 RecorderEndpoint 上有新事件。此事件是 RecordingPausedStopped

如果您调用stop方法并等待Stopped事件,那么您可以保证文件已被正确写入。

Kurento 媒体服务器的下一版本应包含此事件。