什么可能会改变声音输出

时间:2019-06-24 06:54:21

标签: android audio android-ndk oboe

我正在处理一个我需要向其发送一些信号的设备(例如特定的方波,已在设备的固件中进行硬编码)的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);

播放了一些声音,当我听到声音时可以听到它,因此我的回调正常工作,但是设备无法解析信号。手机未处于“请勿打扰”模式,我禁用了均衡器。

我正在运行OxygenOS 9.0.6(Android 9)的OnePlus 5t上对所有这些进行测试,但我没有主意。

1 个答案:

答案 0 :(得分:0)

看来问题不在于双簧管。我在Nexus 5上试用了我的应用程序,它可以正常运行。我怀疑有一些OxygenOS设置,但是我找不到它,我正在慢慢开始放弃...