169 похожих чатов

Добрый день, можно ли как-то запустить запись AudioRecord в сервисе

без запуска activity? Жалуется что uninitialized

17 ответов

21 просмотр

а как требует инитить?

Mr- Автор вопроса

java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord

ну, так. в доках написано должно быть как инитить его

Mr- Автор вопроса

recorder = AudioRecord(MediaRecorder.AudioSource.MIC, RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, BufferElements2Rec * BytesPerElement); recorder.startRecording() сделал как написано, если перед этим запустить активити - всё ок. Не работает если запускается только сервис

а уже гуглил ? че говорят? audioRecord init in service

Уверены, что обращаетесь к нему после инициализации? Попробуйте перенести инициализацию в by lazy, чтобы быть уверенным

Mr- Автор вопроса

да, обложил логгером, пробовал выносить инициализацию в блок init и пробовал в application создавать

В init не надо. Именно в by lazy

Mr- Автор вопроса

то же самое, единственное, перед ошибкой есть ещё строки: E/IAudioFlinger: createRecord returned error -1 E/AudioRecord: createRecord_l(113): AudioFlinger could not create record track, status: -1 E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -1. E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object. после этого идёт ошибка инициализации

Ну тогда не могу подсказать, не работал с AudioRecord. Видимо не нравится ему работа в сервисе.

я не совсем понял. Вы не можете запустить AudioRecord в сервисе что ли?

Mr- Автор вопроса

не могу запустить в сервисе без предварительно запущенной активити

Привет, запускаешь сервис привязываешь уведомление, отвязываешь от активити

он не будет стопиться дройдом потом

Mr- Автор вопроса

этот кейс всё ещё предполагает явный вызов activity, сейчас foreground сервис запускается при старте системы (в новых версиях вызов активити при запуске запрещён)

https://www.dev2qa.com/how-to-start-android-service-automatically-at-boot-time/ попробуй через броадкаст ресивер словить старт и в нем сервис запустить, а в сервисе уведомление показать

Mr- Автор вопроса

с автозапуском проблем нет. Проблема в том, что в запущенном при старте системы foreground сервисе не инициализируется AudioRecord. Я предполагаю что проблема в том, что под капотом там используется ActivityThread, а в моём случае никакая activity не создаётся

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта