Как проверить, что убивает мое приложение аудио усилитель? (ios, цель C) - PullRequest
0 голосов
/ 08 января 2019

У меня есть приложение ios, которое принимает звук с микрофона телефона, выполняет некоторую обработку данных микрофона в режиме реального времени и отправляет результат в наушники

В проекте -> Возможности -> Фоновые режимы я выбрал Аудио, AirPlay и Картинка в картинке

Я хочу, чтобы приложение продолжало считывать данные с микрофона и отправлять аудио в наушники, когда приложение находится в фоновом режиме (пользователь нажимает кнопку «Домой») и когда экран телефона заблокирован с помощью кнопки блокировки

Все это происходит, так что я не думаю, что есть какие-либо проблемы с разрешениями приложения, но я заметил, что после того, как приложение установлено на заднем плане, оно внезапно уничтожается, обычно менее чем за минуту

Мне удалось поймать экземпляр приложения, убитого в фоновом режиме в консоли xcode, и сообщение было

Message from Debugger: terminated due to signal 9  

Просмотр в Google показывает, что это просто означает, что приложение было уничтожено ОС с помощью SIGKILL

Есть ли способ узнать, почему приложение было убито? Разве невозможно поддерживать приложение в фоновом режиме в течение длительного времени? До того, как я включил Audio, AirPlay and Picture in Picture фоновый режим, звук останавливался, как только я нажимал кнопку «Домой» или кнопку блокировки экрана. Я предполагаю, что, поскольку звук продолжает работать, когда я нажимаю кнопку «Домой», это означает, что я действительно могу запускать микрофон / динамик в фоновом режиме, если нужно, и есть музыкальные проигрыватели, а также приложения для записи звука, которые работают в фоновом режиме. пока пользователь специально не закроет их.

Как узнать точную причину, по которой мое приложение закрывается автоматически, и что я могу сделать, чтобы оно продолжало работать в фоновом режиме до тех пор, пока пользователь не закроет его?

1 Ответ

0 голосов
/ 08 января 2019

После того, как вы установили свое приложение через xcode, запустите его нормально (не запустив в xcode), пусть оно вылетает. Затем подключите телефон, зайдите в xcode -> Window -> Devices and Simulators -> View Logs. Затем найдите самый последний сбой.

Ваши конкретные проблемы звучат для меня как чрезмерное использование процессора. Приложение в фоновом режиме не может использовать более 80% (IIRC) ЦП устройства в течение длительных периодов времени (около одной минуты), иначе оно будет уничтожено системой. Если это ваш случай, вам просто нужно оптимизировать код, чтобы не перегружать процессор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...