Как я могу гарантировать, что прямая трансляция будет остановлена ​​после завершения трансляции? - PullRequest
1 голос
/ 18 марта 2020

Клиенты ... Должны любить их:)

Я создал веб-процесс, который запускает прямой эфир в Azure Media Services, но в тестировании я видел пару раз, когда конечный пользователь просто закрывает браузер вместо того, чтобы нажимать кнопку окончания вещания, которую я так хорошо для него настроил.

Проблема тогда очевидна, поток продолжает работать. Умножьте это несколько раз, и теперь у меня есть многочисленные прямые трансляции, которые ничего не передают, но я несу расходы.

Есть ли что-нибудь в конфигурации на портале (или даже в конфигурации потока: client.LiveEvents. CreateAsyn c (....)), который может остановить эти службы, даже если они закрывают свой браузер?

1 Ответ

2 голосов
/ 19 марта 2020

Несколько способов подойти к этому.

  1. Ваше веб-приложение должно запросить пользователя, хотят ли они завершить трансляцию, если они закрывают браузер. Это событие браузера, которое может обрабатывать ваше веб-приложение.

  2. Со стороны сервера вы можете отслеживать живые события, подписываясь на события сетки событий. 2 способа сделать это также. Пожалуйста, ознакомьтесь с документацией схемы событий сетки событий , чтобы узнать о них больше.

Вы можете подписаться на уровень потока "Microsoft.Media.LiveEventEncoderDisconnected" и отслеживать что никакое переподключение не происходит какое-то время, чтобы остановить и удалить ваше живое событие.

Или вы можете подписаться на события сердцебиения на уровне дорожки. Если все дорожки имеют входящий битрейт, снижающийся до 0; или последняя отметка времени больше не увеличивается, тогда вы также можете безопасно отключить прямую трансляцию. События сердцебиения поступают каждые 20 секунд для каждого трека, поэтому он может быть немного многословным.

Чтобы узнать больше о том, как подписаться на события сетки событий, вы можете прочитать эту документацию здесь

...