我正在嘗試創建雙屏幕設置。 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
非常感謝您提供的信息,但是您可以像在應用程序中複製數據流一樣將其發送到不同的輸出設備上嗎? –