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

Я работаю над приложением для 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), и у меня нет идей.


person loics2    schedule 24.06.2019    source источник
comment
Какой-то звук воспроизводится, я слышу его, когда слушаю, поэтому мой обратный вызов работает правильно, но устройство не может разобрать сигнал — в чем разница между тем, что вы ожидаете услышать, и тем, что вы слышите на самом деле? Это просто тише или есть какие-то искажения/звуковые артефакты?   -  person donturner    schedule 24.06.2019
comment
Кроме того, правильно ли работают образцы приложений Oboe на вашем тестовом устройстве?   -  person donturner    schedule 24.06.2019
comment
Я не знаю, есть ли разница: я не могу слушать, что получает устройство, оно только слушает свой вход и ничего не выводит (возможно, я должен упомянуть, что это USB-аудиоустройство). Для проверки выхода я использовал ЦАП и слушал в наушниках. Сигнал звучит правильно, но я не знаю, что на самом деле отправляется на мое конкретное устройство. Я основывал свой код на образце LiveEffect, и он работает правильно.   -  person loics2    schedule 24.06.2019


Ответы (1)


Похоже, дело не в гобое. Я попробовал свое приложение на Nexus 5, и оно работает правильно. Подозреваю какие-то настройки OxygenOS, но не могу найти какие именно, и потихоньку начинаю сдаваться...

person loics2    schedule 16.07.2019