Здесь много вопросов, требующих отображения красной полосы записи в фоновом режиме. Совершенно ясно, что я должен использовать AVAudioSession
категорию AVAudioSessionCategoryPlayAndRecord
. Мой вопрос: как я могу отображать зеленую панель «Входящие» (или, по крайней мере, красную полосу) в приложении переднего плана при наличии активного вызова VOIP в моем приложении? Поэтому я мог вернуться, чтобы вызвать пользовательский интерфейс, нажимая область состояния, точно так же, как Whatsapp или Skype.Как показать двойную высоту зеленой панели состояния (In-Call) в приложении переднего плана на устройстве?
То, что я уже пробовал:
voip
иaudio
режимы вUIBackgroundModes
ключ в Info.plist +setCategory:AVAudioSessionCategoryPlayAndRecord
+setActive
как предложено in this SO answer (дает мне красный StatusBar, идя фон, но ничего в плане)- Предыдущая
AVAudioSession
+ +setMode:AVAudioSessionModeVoiceChat
- не работает - Установите
kCFStreamNetworkServiceTypeVoIP
флаг сокета в источниках pjsip и перекомпилировать это - не помогло. Кроме того, не рекомендуется, так как IOS 8. - создал отдельную розетку, установите флаг Voip для InputStream/OutputStream:
[self.inputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType]
(взял пример кода из here)
Использование pjsip для звонков. Что еще я могу попытаться увеличить высоту статусной панели, перемещая все UI вниз? Существуют ли какие-либо стандартные способы сделать это, или я должен взломать его самостоятельно, изменив размер корневого UIWindow и установив еще один зеленый UIWindow в строке состояния?
Edit: Поскольку никакого ответа не найден стандартный способ, чтобы сделать это, принял @ римскими Ермолами ответа. Для тех, кто будет искать ответ я могу предложить несколько вариантов, чтобы сделать это самостоятельно:
- Оберните корень ViewController внутри контейнера, как в Apple's iAdSuite with Storyboards example. Посмотрите, например, на мой sample project. Наверное, лучший способ сделать этот бар.
- Hack UINavigationBar высота (см this подхода) - не работает пейзаж еще, но, вероятно, может быть решена
- кадр управления вашим главного UIWindow в себя, поместите другой UIWindow под статусным с нужным содержанием.
Был ли мой ответ полезным или, возможно, вы ищете детали реализации? Если да, не могли бы вы предоставить дополнительную информацию о своих требованиях? –
Было очень полезно, спасибо. Я все еще надеюсь, что есть системный способ включения панели вызовов, если таковой имеется. Если никто этого не найдет, я приму ваш ответ –