我正在开发一个 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);
播放了一些声音,我听的时候可以听到,所以我的回调正常工作,但设备无法解析信号。手机未处于“请勿打扰”模式,我禁用了均衡器。
我正在运行 OxygenOS 9.0.6 (Android 9) 的 OnePlus 5t 上测试所有这些,但我没有想法。