Что может изменить выход звука
Я работаю над приложением для Android, имеющим дело с устройством, на которое мне нужно послать некоторый сигнал (например, конкретную прямоугольную волну, жестко запрограммированную в прошивке устройства).
С Superpowered Audio все работало нормально, но теперь, когда я перехожу на Oboe, эти сигналы больше не работают. Мой код для генерации сигнала не изменился, поэтому мне интересно, где можно изменить вывод.
В моем приемнике вещания у меня есть этот кусок кода, чтобы установить максимальную громкость на выходе:
audioManager.setStreamVolume(
AudioManager.STREAM_MUSIC,
audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
0);
Манифест содержит эти:
<uses-feature android:name="android.hardware.usb.host" android:required="true"/>
<uses-feature android:name="android.hardware.microphone" android:required="true" />
<uses-feature android:name="android.hardware.audio.output" android:required="true" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Поток воспроизведения настроен так:
builder->setCallback(this)
->setDeviceId(outputDeviceId)
->setDirection(oboe::Direction::Output)
->setChannelCount(oboe::ChannelCount::Stereo)
->setFormat(oboe::AudioFormat::I16)
->setSampleRate(samplerate)
->setSharingMode(oboe::SharingMode::Exclusive)
->setPerformanceMode(oboe::PerformanceMode::LowLatency)
->setInputPreset(oboe::InputPreset::Unprocessed);
Звук воспроизводится, я слышу его, когда слушаю, поэтому мой обратный вызов работает правильно, но устройство не может проанализировать сигнал. Телефон не находится в режиме "Не беспокоить", и я отключил эквалайзер.
Я тестирую все это на OnePlus 5t под управлением OxygenOS 9.0.6 (Android 9), и у меня нет идей.
1 ответ
Похоже, проблема не в гобое. Я попробовал мое приложение на Nexus 5, и оно работает правильно. Я подозреваю, что некоторые настройки OxygenOS, но я не могу найти, что это такое, и я медленно начинаю сдаваться...