Android强制HDMI音频

时间:2015-08-09 21:31:35

标签: android audio hdmi

连接到电视时,我的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 个答案:

答案 0 :(得分:2)

使用

    <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");
用于设置有效音频输出的代码中的