如何确保直播结束后停止直播?

How can I ensure a live stream is stopped after the broadcast is done?

客户...必须爱他们:)

我构建了一个在 Azure 媒体服务中启动实时流的 Web 进程,但在测试中我看到几次最终用户只是关闭浏览器而不是单击结束广播按钮我已经为他们设置得很好。

那么问题就很明显了,流一直在运行。将其乘以几次,我现在有很多直播流,但我却要承担费用。

门户中的配置(甚至流配置中:client.LiveEvents.CreateAsync(....))是否有任何东西可以停止这些服务,即使他们关闭了浏览器?

解决这个问题的几种方法。

  1. 您的 Web 应用程序应在用户关闭浏览器时提示他们是否要结束广播。这是您的 Web 应用程序可以处理的浏览器事件。

  2. 从服务器端,您可以通过订阅 eventgrid 事件来监视实时事件。也有两种方法可以做到这一点。请参阅 eventgrid event schema 上的文档以了解有关它们的更多信息。

您可以订阅流级别 "Microsoft.Media.LiveEventEncoderDisconnected" 并监视一段时间内没有重新连接以停止并删除您的直播活动。

或者订阅track级别的心跳事件。如果所有轨道的输入比特率都降为 0;或者最后一个时间戳不再增加,那么你也可以安全地关闭直播活动。每条轨道每 20 秒出现一次心跳事件,因此可能有点冗长。

要了解有关如何订阅事件网格事件的更多信息,您可以阅读此文档here