Вот что я хочу:
1. Перемещение по времени в реальном времени во время воспроизведения песни.
2. Сдвиг высоты тона также должен быть записан в файл.RealTime Pitch Shifting с использованием TarsosDSP на Android
код:
double rate = 1.0;
RateTransposer rateTransposer;
AudioDispatcher dispatcher;
WaveformSimilarityBasedOverlapAdd wsola;
dispatcher = AudioDispatcherFactory.fromPipe(mAudiopath, 44100, 5000, 2500);
rateTransposer = new RateTransposer(rate);
wsola = new WaveformSimilarityBasedOverlapAdd(WaveformSimilarityBasedOverlapAdd.Parameters.musicDefaults(rate, 44100));
WaveformWriter writer = new WaveformWriter((TarsosDSPAudioFormat) dispatcher.getFormat(), BASE_PATH + "Recorded" + File.separator + "PITCHED_" + mVideoFileName + ".mp3");
wsola.setDispatcher(dispatcher);
dispatcher.addAudioProcessor(wsola);
dispatcher.addAudioProcessor(rateTransposer);
dispatcher.addAudioProcessor(new AndroidAudioPlayer(dispatcher.getFormat()));
dispatcher.setZeroPadFirstBuffer(true);
dispatcher.setZeroPadLastBuffer(true);
dispatcher.addAudioProcessor(writer);
Но здесь я столкнулся следующее сообщение об ошибке:
Error:(362, 41) error: cannot access AudioFormat
class file for javax.sound.sampled.AudioFormat not found
для линии
WaveformWriter writer = new WaveformWriter((TarsosDSPAudioFormat) dispatcher.getFormat(), BASE_PATH + "Recorded" + File.separator + "PITCHED_" + mVideoFileName + ".mp3");
Если удалить эту строку все работает отлично только песня не записывается в файл.
Пожалуйста, дайте мне знать, если кто-то может помочь.