我正在尝试创建双屏幕设置。 Android平板电脑(Nexus 10)使用HDMI连接到另一个屏幕。同时在耳机和扬声器上输出音频
在平板电脑上播放影片时(使用VLC或其他应用程序),它将在两个屏幕上正确显示。
但是,音频信号只能通过HDMI传输。使用,我们设法在或耳机或HDMI上获得音频输出。
我看不到一个函数来同时为两个设备设置音频输出。 我试着用音频管理器设置它,但它只适用于一个频道。
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setSpeakerphoneOn(true);
am.setWiredHeadsetOn(true);
我注意到的另一件事是setParameters API然后将变量传递到平台音频系统。这可能是ALSA,或许解决方案在那里?
Thx&有道理。检查我的理解:一个定制的Android系统(比如说,我是一个OEM,可以分发我自己的版本)可以包含一个修改过的'ALSADevice.cpp',然后同时为HDMI和扬声器设置路由。唯一值得关注的是'getUCMDevice'函数可能只返回一个音频设备 - 或者这对于路由意味着什么?所以我应该先添加一条路线,然后返回路线ID /名称,对吗? –
您必须确保AudioPolicyManager实际为您正在使用的流类型(或至少对于_some_流类型)选择HDMI +扬声器。然后,ALSADevice需要选择一个组合UCM设备(例如'SND_USE_CASE_DEV_HDMI_SPEAKER'),最后你必须更新UCM文件(snd_soc_msm_blabla)以添加新添加的实际设置(我称之为低级路由) UCM设备。 ..当然,平台必须实际支持这样做。 – Michael
非常感谢您提供的信息,但是您可以像在应用程序中复制数据流一样将其发送到不同的输出设备上吗? –