Я работаю над приложением для Android, имеющим дело с устройством, на которое мне нужно отправить некоторый сигнал (например, конкретную прямоугольную волну, жестко запрограммированную в прошивке устройства).
Все работало нормально с Superpowered Audio,но теперь, когда я перехожу на гобой, эти сигналы больше не работают.Мой код для генерации сигнала не изменился, поэтому мне интересно, где можно изменить выход.
В моем приемнике вещания у меня есть этот фрагмент кода, чтобы установить максимальную громкость на выходе:
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), и я отсутствуетидей.