Что может изменить выход звука

Я работаю над приложением для 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, но я не могу найти, что это такое, и я медленно начинаю сдаваться...

Другие вопросы по тегам