Каналы громкости

Такая Проблема: У меня есть видеофайл, записанный с двумя звуковыми каналами. Я попытался отключить левый звуковой канал этим кодом:

MediaPlayer mp; 

....

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

... и на планшете это работает хорошо (правый канал громкости звучит хорошо). Но затем я попробовал это на googleTv, который я подключаю к Samsung UE46ES6307U, и этот код не работает, звук отключается. Может быть, это связано с аудио Dolby Digital Plus / Dolby Pulse? Могу ли я как-то программно узнать, какие у устройства звуковые каналы и какая громкость в каждом настроенном канале?

Обновление: на этом форуме http://www.googletvforum.org/forum/logitech-revue/375-audio-problems-logitech-revue.html в одном из ответов такое сообщение: «Logitech еще не придумала, как передать многоканальный звук через 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 не действует.

Обновление 2

Пробовал воспроизводить аудиофайл .ogg, закодированный кодеком Vorbis - каналы переключаются хорошо. Но пробовал проигрывать видеофайлы в кодировке mp3, ac3, pcm, aac - а проблема с отключением каналов осталась... Мне нужно отключить аудиоканалы в видео, но как решить эту проблему не знаю все же.


person Sinigami    schedule 03.12.2012    source источник


Ответы (1)


Объект MediaPlayer поддерживается разными библиотеками на разных устройствах (в отличие от планшета и Google TV). Как вы строите MediaPlayer?

Одна вещь, которую вы можете попробовать, это вызвать #reset() в MediaPlayer сразу после его создания. По умолчанию, когда вы используете «новый» оператор для создания экземпляра MediaPlayer, он находится в состоянии IDLE (по крайней мере, на Google TV). Вызывая reset, вы разрешаете вызывать свой собственный обработчик OnErrorListener.onError(). Это позволит вам увидеть, есть ли какая-то основная ошибка, которая иначе не видна.

Вы также можете посмотреть AudioManager#setStreamVolume(int, int, int), который устанавливает громкость ВСЕХ потоков определенного типа.

Редактировать 1: Поскольку вы просто берете VideoView из макета (я предполагаю, что этот код был опущен), после настройки прослушивателя вы должны вызвать reset для просмотра видео.

person Krispy    schedule 04.12.2012
comment
Я изучаю этот вопрос, но команда сейчас в отпуске. Это может быть связано с аудиоканалом через HDMI - пробовали ли вы оптический выход (только для Sony). Какой тип Google TV у вас есть? - person Krispy; 21.12.2012
comment
Logitech Revue — logitech.com/en-us/support / оптический выход не пробовал - person Sinigami; 21.12.2012
comment
Пробовал с оптическим кабелем на Logictec - та же проблема. - person Sinigami; 26.12.2012
comment
Можно ли поделиться видеофайлом, который вы используете? - person Krispy; 26.12.2012
comment
любой видео- или аудиофайл будет соответствовать. Например, filehosting.org/file/details/406161/test.mp3 - person Sinigami; 26.12.2012
comment
Привет! Извините, если я беспокою вас. Я об этой проблеме code.google.com /p/googletv-issues/issues/. Есть ли у вас какие-либо идеи о том, в чем проблема, или несколько советов, как я могу отключить левый / правый каналы в моих медиа. Можете ли вы прислать мне пример файла, в котором это работает? Спасибо за внимание! Ответь мне пожалуйста. - person Sinigami; 19.02.2013