2013-06-05 4 views
0

У меня есть приложение, в котором я буду воспроизводить 2 аудиофайла одновременно, и пользователь будет пытаться услышать один (разговорные слова) над другим (фоновый шум). При успешном обращении с обратной связью, что они правильно услышали файл, я хочу уменьшить громкость 1 (слов) из 2-х файлов и воспроизвести его снова, и они попытаются услышать его по шуму. Я хочу уменьшить объем одного файла ... другой должен оставаться постоянным (в противном случае он побеждает в попытке услышать одно над другим). Все, что я нашел до сих пор в MediaManager, - это возможность изменить глобальный том приложения, а не конкретные аудиоклипы в приложении.Размер файла Android для Android

Любая помощь очень ценится.

ответ

0

Мое впечатление, что медиаплеер был глобальным, был неверным. Вы можете установить громкость для этого файла, и он будет поддерживать этот том даже при воспроизведении более громкого или более тихого файла (даже при использовании той же самой mp). Слушатель oncompletion имеет важное значение для выпуска файла, когда по другим причинам вы получите исключения и потеряете весь звук. Логарифмическая математике функция важна, чтобы получить объем в масштабе соответственно между 0 & 100.

Предполагая MAX_VOLUME 100:

mp = MediaPlayer.create(getApplicationContext(), R.raw.noise); 
     final float noisevolume = (float) (1 - (Math.log(MAX_VOLUME - 50)/Math.log(MAX_VOLUME))); 
     mp.setVolume(noisevolume, noisevolume); 
     mp.start(); 
     mp.setOnCompletionListener(new OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mp) { 
       mp.release(); 
      } 
     }); 
Смежные вопросы