2013-07-24 4 views
1

Возможно ли, что Soundpool будет воспроизводить звук с большей скоростью, например, играть на 50% быстрее?ускорить звук с помощью SoundPool

private void loadSound(int position, int group_position) { 
    switch (position) { 
     case 0: 
      myVoice = soundPool.load(PhraseActivity.wr.get(), sound[group_position][0], 2); 
      soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
       @Override 
       public void onLoadComplete(SoundPool soundPool, int sampleId, 
        int status) { 
        soundPool.play(myVoice, 20, 20, 1, 0, 1f); 
       } 
      }); 
     break; 
     case 1: 
      myVoice = soundPool.load(PhraseActivity.wr.get(), sound[group_position][1], 2); 
      soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
       @Override 
       public void onLoadComplete(SoundPool soundPool, int sampleId, 
        int status) { 
        soundPool.play(myVoice, 20, 20, 1, 0, 1f); 
       } 
      }); 
     break; 
    } 
} 

ответ

2

Скорость воспроизведения позволяет приложению изменять скорость воспроизведения (шаг) звука. Значение 1.0 означает воспроизведение на исходной частоте. Значение 2.0 означает воспроизведение в два раза быстрее, а значение 0,5 означает воспроизведение с половинной скоростью. см Doc

Так что вам нужно изменить
soundPool.play(myVoice, 20, 20, 1, 0, 1f);
в
soundPool.play(myVoice, 20, 20, 1, 0, 2f);

значение 2 будет расти скорость до 50% больше, чем вы хотели

+0

я изменил значение с плавающей точкой к выше - да, это ускоряется, но звуковой файл, похоже, искажен. Голос женщин меняется на детский голос. –

+0

@ user2365568 вот что происходит, когда вы ускоряете голос .. это нормальная вещь ... и когда вы замедляете ее, она станет тяжелым голосом – Alamri

0

Последний параметр play() контролирует скорость воспроизведения.

См. the docs.

Параметры

soundID: а soundID возвращается функцией нагрузки()

leftVolume: левое значение объема (диапазон от 0,0 до 1,0)

rightVolume: правильное значение объема (диапазон = от 0,0 до 1,0)

приоритет: приоритет потока (0 = самый низкий приоритет)

цикл: Режим петли (0 = нет петли, -1 = цикл навсегда)

Скорость: скорость воспроизведения (1,0 = нормальное воспроизведение, диапазон от 0,5 до 2,0)

Обратите внимание, что вы можете только изменяйте скорость от 0,5 до 2,0, что означает половину в два раза быстрее. Что-нибудь еще, и вам придется придумать собственную реализацию.

Смежные вопросы