azure-media-services - 如何确保直播结束后停止直播?
问题描述
客户......必须爱他们:)
我构建了一个在 Azure 媒体服务中启动实时流的 Web 进程,但在测试中我已经看到几次最终用户只是关闭浏览器而不是单击结束广播按钮,我已经很好地设置了他们。
那么问题就很明显了,流继续运行。将其乘以几次,我现在有许多直播流,但我正在承担费用。
门户中的配置(甚至在流配置中: client.LiveEvents.CreateAsync(....) )中是否有任何内容可以停止这些服务,即使它们关闭了浏览器?
解决方案
有几种方法可以解决这个问题。
如果用户正在关闭浏览器,您的 Web 应用程序应提示用户是否要结束广播。这是您的 Web 应用程序可以处理的浏览器事件。
在服务器端,您可以通过订阅 eventgrid 事件来监控实时事件。2种方法也可以做到这一点。请参阅eventgrid 事件模式的文档以了解有关它们的更多信息。
您可以订阅流级别“Microsoft.Media.LiveEventEncoderDisconnected”并监视一段时间内没有重新连接以停止并删除您的实时事件。
或者您可以订阅轨道级别的心跳事件。如果所有轨道的输入比特率下降到 0;或者最后一个时间戳不再增加,那么您也可以安全地关闭直播活动。每个音轨的心跳事件每 20 秒出现一次,因此可能有点冗长。
要了解有关如何订阅 eventgrid 事件的更多信息,您可以在此处阅读此文档
推荐阅读
- javascript - 文本更改时淡入淡出
- distributed-transactions - 关于在 YugabyteDB 中使用 safe_time 的说明
- java - 包含与 ObservableList() 总是返回 false
- c - 为什么我必须发送两次信号?
- selenium-chromedriver - 错误:类型不匹配:无法从 ChromeDriver 转换为 WebDriver
- pine-script - Pine 脚本 - 在满足购买条件后仅绘制一次
- python - 根据标准查找另一个数据框的最有效方法,用于按 3D 尺寸和重量包装问题
- java - 降级到 jdk11 后无法构建 JavaFx 项目
- php - Laravel 雄辩的 whereHas() 无法使用 with() 急切加载
- acumatica - 与推送通知调度错误相关的 Acumatica 和系统崩溃