Android SoundPool левая / правая громкость - PullRequest
0 голосов
/ 29 февраля 2012

Я хочу воспроизводить mp3 файл ТОЛЬКО на нужном канале.-> левый канал, установить громкость: 0 (приглушено)

Я пробовал:

public class TestSound {

    private SoundPool soundPool;
    private int id;

    public TestSound(Context context,final float leftVolume, final float rightVolume) {
        soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 100);
        id = soundPool.load(context, R.raw.cat, 1);
        soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {

            public void onLoadComplete(SoundPool arg0, int arg1, int arg2) {
                soundPool.play(id, leftVolume, rightVolume, 1, 0, 1f);                     
            };
        });
    }
}

//execute
new TestSound(getApplicationContext(), 0f, 1.0f); //left vol:0; right:1

К сожалению, первый канал (слева): очень-очень тихо воспроизводит песню (не приглушается)и второй канал (справа) это хорошо.Почему?

ОС Android: 2.3.4

Спасибо за помощь!

1 Ответ

0 голосов
/ 29 февраля 2012

То, что у вас есть, кажется правильным, поэтому я подозреваю, что то, что вы считали проблемой программирования / программного обеспечения, может быть проблемой аппаратного обеспечения. Вы можете просто получать сигнал по всем каналам. Чтобы проверить, вы можете попробовать запустить этот код на эмуляторе и использовать программное обеспечение для записи (для цифровой записи) вывода и посмотреть в волновом редакторе, действительно ли воспроизводится левый канал.

В качестве альтернативы, вы можете попробовать сравнить другой способ. Сначала отредактируйте файл в волновом редакторе, чтобы все находились на правом канале, прослушайте его на своем устройстве и посмотрите, не попали ли вы в левый.

...