Добрый день.
1. Есть ли возможность рекордить аудио с записи экрана?
Да, есть возможность захватывать аудио с микрофона отдельным потоком. Смотрите пример
iOS Screen Capturer Swift
2. При трансляции записи экрана, воспроизведение начинается только спустя 7-15 секунд в среднем, хоть картинка транслируется, и поток идет.
Здесь могут быть две причины:
1. Ключевые фреймы высылаются редко. В этом случае должна помочь настройка на стороне сервера
Code:
periodic_fir_request=true
periodic_fir_request_interval=5000
В этом случае сервер будет запрашивать ключевой фрейм каждые 5 секунд. На стороне клиента нет возможности повлиять на высылку ключевых фреймов, только на стороне сервера.
2. Проблемы с каналом публикации или воспроизведения. Эта причина более вероятна, поскольку экран транслируется всегда с полным разрешением, а разрешение это велико (фактически, 2K или 4K поток). Для таких потоков рекомендуется канал не менее 10 Мбит/с между клиентом и сервером. Также рекомендуется использовать TCP транспорт для публикации/проигрывания на стороне клиента, например
Code:
let options = FPWCSApi2StreamOptions()
options.name = publishName.text
options.display = localDisplay.videoView
options.constraints = localMediaConstrains;
options.transport = "TCP";
do {
try publishStream = session!.createStream(options)
} catch {
print(error);
}
...
do {
try publishStream?.publish()
} catch {
print(error);
}
или на стороне сервера (для всех потоков)
3. Проблема с записью стрима, при демонстрации экрана, запись стрима выглядит, как черный экран.
Cкорее всего, та же проблема с каналом.
4.Креши внутри фреймоврка фонера — AVCaptureSession can't startRunning between calls to beginConfiguration / commitConfiguration.
Воспроизводится ли эта проблема в примере
iOS Screen Capturer Swift, собранном из
исходных текстов с GitHub? Если нет, то модифицируйте код примера минимально до тех пор, пока проблема не начнет воспроизводиться, и пришлите нам, используя
эту форму.