音量频道

时间:2012-12-03 13:33:33

标签: android google-tv

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

MediaPlayer mp; 

....

mp.setVolume(0.f, 1f);

...在平板电脑上这项工作很好(正确的音量通道听起来不错)。但后来我在googleTv上试了一下,我连接到三星UE46ES6307U,这个代码没有用,声音很好。 也许它与Dolby Digital Plus / Dolby Pulse音频有关?我能以某种方式以编程方式发现声道设备的声音,以及每个声道设置的音量是多少?

更新: 在这个论坛http://www.googletvforum.org/forum/logitech-revue/375-audio-problems-logitech-revue.html的回复中有一条消息:“罗技还没有想出如何通过hdmi管道多声道音频。你必须使用光输出。哪个好。”

“您如何构建MediaPlayer?”

Videoview vv;
...............

        vv.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                mp.setVolume(0.f, 1f);
            }
        });

更新

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方法无效。

UPDATE2

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

1 个答案:

答案 0 :(得分:3)

MediaPlayer对象由设备上的不同库支持(平板电脑和Google TV之间不同)。你是如何构建MediaPlayer的?

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

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

编辑1: 由于您只是从布局中抓取VideoView(我猜是因为代码被省略了),所以在设置监听器后,您应该在视频视图上调用reset。