Android 强制 HDMI 音频

标签 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 上输出音频有什么想法吗?

最佳答案

使用

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

在你的 list 中

    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");

在您用于设置 Activity 音频输出的代码中

关于Android 强制 HDMI 音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31909040/

相关文章:

java - 如何使用 RxJava 重复网络调用

actionscript-3 - AS3 Sound.Play(starttime)奇怪的延迟

iphone - iPad 2 上带有 HDMI 适配器的黑条

android - 在发送到 android/linux 中的 hdmi 输出之前,可以轻松地将 ycbcr 转换为 rgb 吗?

android - 如何从自定义类在 UI 线程上运行 Runnable

java - Android - .getInputStream() 不断崩溃

android - Android故障转储数据在设备上的访问

python - WinError 2:系统找不到在Python中用FluidSynth指定的文件吗?

c++ - 使用 Windows 内置的 MP3 解码器播放音频?

linux - 我可以截取 Linux 中 HDMI 输出上显示的内容吗?