Есть ли способ закончить трансляцию изящно из RPBroadcastSampleHandler?
Я реализую расширение широковещательной загрузки в iOS, используя свой собственный SampleHandler
простирающийся RPBroadcastSampleHandler
, Проблема довольно проста - мне нужен способ изящно завершить трансляцию из расширения.
Требуется прекратить трансляцию и отключить запись экрана, когда все остальные пользователи перестают смотреть трансляцию. Я могу легко обнаружить этот случай. Тем не менее, кажется, что RPBroadcastSampleHandler
не обеспечивает способ закончить это, по крайней мере, не изящный способ.
На основании официальной документации, существует broadcastFinished()
обратный вызов по окончании трансляции (когда пользователь завершает его), и есть способ завершить его при возникновении ошибки - finishBroadcastWithError(_:)
, Я мог бы предоставить какое-нибудь приятное сообщение об ошибке и завершить его с ошибкой, но я бы предпочел просто завершить его, не показывая никакой ошибки - я не хочу указывать, что произошла какая-либо ошибка, поскольку это предполагаемое поведение.
У кого-нибудь есть способ, как этого добиться?
1 ответ
Вы должны сделать это с помощью кода Obj-C. Как вы можете видеть в официальном репозитории Telegram, они используют BroadcastUploadHelpers, чтобы корректно остановить sampleHandler.
void finishBroadcastGracefully(RPBroadcastSampleHandler * _Nonnull broadcastSampleHandler) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
[broadcastSampleHandler finishBroadcastWithError:nil];
#pragma clang diagnostic pop
}