Android强制HDMI音频
Posted
技术标签:
【中文标题】Android强制HDMI音频【英文标题】:Android force HDMI audio 【发布时间】:2015-11-01 17:55:12 【问题描述】:我的 ADT-1 在连接到电视时无法通过 HDMI 播放声音。
在那台特定的电视上,我不得不在 Raspberry PI 上强制使用 HDMI 音频,所以我也在尝试在 ADT-1 上强制使用它。
我尝试制作一个有权限的应用
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
并使用 AudioManager 实例更改设置
AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
Log.d(TAG, "ATTACHED: " + manager.getParameters("attached_output_devices"));
Log.d(TAG, "DEFAULT: " + manager.getParameters("default_output_device"));
Log.d(TAG, "PRE: " + manager.getParameters("audio_devices_out_active"));
manager.setParameters("audio_devices_out_active=AUDIO_DEVICE_OUT_AUX_DIGITAL");
Log.d(TAG, "POST: " + manager.getParameters("audio_devices_out_active"));
但所有日志都返回空,并且音频没有变化。
ATTACHED: attached_output_devices=
DEFAULT: default_output_device=
PRE: audio_devices_out_active=
POST: audio_devices_out_active=
我从 TIF(电视输入框架)中了解了电视音频以及设置音频补丁的可能性,但我认为情况并非如此,这似乎更多是因为电视仅被视为 HDMI 显示器,没有音频功能。
文件 /etc/audio_policy.conf 显示:
global_configuration
attached_output_devices AUDIO_DEVICE_OUT_SPEAKER
default_output_device AUDIO_DEVICE_OUT_SPEAKER
...
audio_hw_modules
outputs
primary
...
devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_AUX_DIGITAL
flags AUDIO_OUTPUT_FLAG_PRIMARY
其中 AUDIO_DEVICE_OUT_AUX_DIGITAL 是 HDMI。
知道如何强制 ADT-1 在 HDMI 上输出音频吗?
【问题讨论】:
【参考方案1】:使用
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
在您的清单中和
audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
audioManager.setParameters("audio_devices_out_active=AUDIO_CODEC");
// or
audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI");
// or
audioManager.setParameters("audio_devices_out_active=AUDIO_HDMI,AUDIO_CODEC");
在您的代码中设置活动音频输出
【讨论】:
以上是关于Android强制HDMI音频的主要内容,如果未能解决你的问题,请参考以下文章