Android 音量通道

Android 音量通道,android,google-tv,Android,Google Tv,这样的问题:我用两个声道录制了视频文件。我试图通过以下代码关闭左声道: MediaPlayer mp; .... mp.setVolume(0.f, 1f); 。。。在平板电脑上,这个效果很好(正确的音量通道听起来很好)。但后来我在谷歌电视上试用了它,我连接到三星UE46ES6307U,但这个代码不起作用,声音被关闭了。 也许它是杜比数字加/杜比脉冲音频的边界?我是否可以通过编程方式了解设备的声道设置,以及每个香奈儿的音量设置 更新: 在这个论坛上,有人回复了这样的信息:“罗技还没有弄明

这样的问题:我用两个声道录制了视频文件。我试图通过以下代码关闭左声道:

MediaPlayer mp; 

....

mp.setVolume(0.f, 1f);
。。。在平板电脑上,这个效果很好(正确的音量通道听起来很好)。但后来我在谷歌电视上试用了它,我连接到三星UE46ES6307U,但这个代码不起作用,声音被关闭了。 也许它是杜比数字加/杜比脉冲音频的边界?我是否可以通过编程方式了解设备的声道设置,以及每个香奈儿的音量设置

更新: 在这个论坛上,有人回复了这样的信息:“罗技还没有弄明白如何通过hdmi传输多声道音频。你必须使用光学输出。这没问题。”

“您是如何构建MediaPlayer的?”

更新:

public class MainActivity extends Activity {
    MediaPlayer mp = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (mp != null) {
            mp.reset();
            mp.release();
        }

        mp = MediaPlayer.create(this, R.raw.test);
        mp.start();

    }

    public void onTurnOffLeft(View v){
        mp.setVolume(0.f, 1.f);
    }

    public void onTurnOffRight(View v){
        mp.setVolume(1.f, 0.f);
    }
}
方法onTurnOffLeft关闭所有声音,onTurnOffRight方法无效

更新2


我试着播放用Vorbis编解码器编码的.ogg音频文件-通道关闭良好。但我试着播放用mp3、ac3、pcm、aac编码的视频文件,而关闭频道的问题仍然存在。。。我需要关闭视频中的音频频道,但如何解决这个问题,我还不知道。

MediaPlayer对象由不同的设备库支持(平板电脑和谷歌电视之间的情况不同)。你是如何构建MediaPlayer的

您可能希望尝试的一件事是在构建MediaPlayer后立即对其调用#reset()。默认情况下,当您使用“新”操作符构造MediaPlayer实例时,它处于空闲状态(至少在Google TV上)。通过调用reset,您可以调用自己的OnErrorListener.onError()处理程序。这将让您查看是否存在其他情况下不可见的潜在错误

您可能还想了解AudioManager#setStreamVolume(int,int,int),它设置特定类型的所有流的音量

编辑1:
由于您刚刚从布局中获取视频视图(我猜,因为该代码被省略),在设置侦听器后,您应该在视频视图上调用reset。

我正在研究此问题,但团队现在正在度假。这可能是由于HDMI上的音频通道造成的-您是否尝试过光学输出(仅限索尼)。你有什么类型的谷歌电视?Logitech Revue-optical out没有尝试在Logictec上使用光缆-同样的问题。是否可以共享你正在使用的视频文件?任何视频或音频文件都将匹配。例如
public class MainActivity extends Activity {
    MediaPlayer mp = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (mp != null) {
            mp.reset();
            mp.release();
        }

        mp = MediaPlayer.create(this, R.raw.test);
        mp.start();

    }

    public void onTurnOffLeft(View v){
        mp.setVolume(0.f, 1.f);
    }

    public void onTurnOffRight(View v){
        mp.setVolume(1.f, 0.f);
    }
}