#swift #opentok
#swift #opentok
Вопрос:
Я работаю над приложением для IOS (SWIFT), в котором я использовал tokbox для создания скриншотов, я могу поделиться экраном, но не могу остановить создание скриншотов.
Это код, который я использовал для создания скриншотов.
publisher?.videoType = .screen
publisher?.audioFallbackEnabled = false
let cap = ScreenCapturer(withView:view)
publisher?.videoCapture = cap
session?.publish(publisher, error: amp;error)
Может кто-нибудь помочь остановить скриншоты в swift.
Ответ №1:
Чтобы остановить совместное использование экрана, необходимо остановить потоковую передачу издателя. Для этого вы можете вызвать:
[OTSession unpublish:error:]
Более подробная информация доступна в руководствах по видео API
В вашем случае, когда вы добавляете совместное использование экрана к существующему вызову, вам нужно будет создать дополнительного издателя для совместного использования экрана, а не редактировать существующий. Для использования существующего издателя потребуется повторная инициализация издателя для переключения между публикацией ленты с камеры и экрана, что также прекратит публикацию звука.
В дополнение к созданию нового издателя, вам необходимо создать нового подписчика для другого пользователя, вы можете сделать это в функции subscriberDidConnect
делегирования на OTSubscriberDelegate
.
Кроме того, вам нужно будет обработать уничтожение как нового издателя, так и подписчика. Это будет сделано в функциях делегирования, которые вы уже используете на OTSessionDelegate
и OTPublisherDelegate
.
Я создал демонстрационное приложение, которое демонстрирует это поведение.
Комментарии:
1. Привет, мы уже пытались остановить издателя, но он выходит из сеанса, но в соответствии с нашим требованием он должен быть на связи, но нам нужно остановить совместное использование экрана и включить камеру, чтобы продолжить видеозвонок.
2. В этом случае вы можете попробовать переключить
publishVideo
свойство на своего издателя.3. Привет, мы пытались установить свойство publishVideo для publisher, но не смогли остановить совместное использование. Это код, который мы пробовали. publisher.VideoCapture? .ReleaseCapture() пусть capturer = ScreenCapturer(с видом: просмотр) publisher.VideoCapture = захватчик capturer.stop() publisher.videoType = .camera publisher.audioFallbackEnabled = false publisher.publishVideo = true Если возможно, можете ли вы дать код для остановки скриншотов?
4. Вы используете один и тот же издатель для совместного использования видео и экрана или отдельный издатель для совместного использования экрана?
5. Мы используем одного и того же издателя как для совместного использования видео, так и для совместного использования экрана.