当前位置:   article > 正文

Android audio设置投屏和喇叭双输出_android投屏scrcpy支持声音部分调研

android投屏scrcpy支持声音部分调研

业务场景:

在 Android13 平台上,使用 USB 投屏工具scrcpy,投屏到电脑端时,声音被截到 电脑端播放,Android设备 端静音,在Android11及之前都是 在Android设备端正常播放。

分析:

scrcpy 支持 Android11以上版本的工具。投屏时有设置设备端AudioSource.REMOTE_SUBMIX属性,音频输出设备是 AUDIO_DEVICE_OUT_REMOTE_SUBMIX 

音频设备输出选择源码中在 Engine.cpp中

  1. frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
  2. case STRATEGY_MEDIA: {
  3. DeviceVector devices2;
  4. if (strategy != STRATEGY_SONIFICATION) {
  5. // no sonification on remote submix (e.g. WFD)
  6. sp<DeviceDescriptor> remoteSubmix;
  7. if ((remoteSubmix = availableOutputDevices.getDevice(
  8. AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0"),
  9. AUDIO_FORMAT_DEFAULT)) != nullptr) {
  10. devices2.add(remoteSubmix);
  11. }
  12. }

若项目需要投屏时喇叭也正常播放,需要修改此处为

  1. case STRATEGY_MEDIA: {
  2. DeviceVector devices2;
  3. if (strategy != STRATEGY_SONIFICATION) {
  4. // no sonification on remote submix (e.g. WFD)
  5. sp<DeviceDescriptor> remoteSubmix;
  6. if ((remoteSubmix = availableOutputDevices.getDevice(
  7. AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0"),
  8. AUDIO_FORMAT_DEFAULT)) != nullptr) {
  9. //需要在这里添加 SPEAKER 输出设备
  10. devices2 = availableOutputDevices.getDevicesFromTypes({
  11. AUDIO_DEVICE_OUT_REMOTE_SUBMIX, AUDIO_DEVICE_OUT_SPEAKER});
  12. }
  13. }

至此,声音即可从电脑播放,Android设备喇叭本身也可正常播放。

注:

Android10 以下版本参考:

修改前:

  1. frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
  2. if(mAvailableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) {
  3. device2 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_REMOTE_SUBMIX;
  4. }

修改后:

  1. if (mAvailableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) {
  2. device2 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_REMOTE_SUBMIX;
  3. device2 |= (availableOutputDeviceTypes & AUDIO_DEVICE_OUT_WIRED_HEADPHONE);
  4. device2 |= (availableOutputDeviceTypes & AUDIO_DEVICE_OUT_SPEAKER);
  5. }

也就是说 device2的获取方式有点差异。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/988377
推荐阅读
相关标签
  

闽ICP备14008679号