我需要在处理中创建一个程序来反转加载的.mp3文件,避免已经实现的抽象函数(例如,Minim
反转给定声音的函数,尽管我还没有找到这样的函数)。我现在已经尝试了很多方法,但它仍然无法播放。
我的最后一种方法是使用该Minim.loadFileIntoBuffer()
函数来获取 a float[]
,然后使用 Processing 的reverse()
函数反转缓冲区。AudioSample
然后我用相同的float
数组和原始文件的格式创建一个。然后我继续使用trigger()
.
这是一个片段:
Minim minim;
AudioPlayer songPlayer;
MultiChannelBuffer song;
AudioSample reversedSong;
float[] reversedBuffer, mixBuffer;
void setup() {
size(512, 200);
minim = new Minim(this);
songPlayer = minim.loadFile("sound.mp3");
// loadFileIntoBuffer changes the MultiChannelBuffer's parameters to
// match the file's, so init values doesn't really matter
song = new MultiChannelBuffer(10, 3);
minim.loadFileIntoBuffer("sound.mp3", song);
mixBuffer = songPlayer.mix.toArray();
reversedBuffer = reverse(mixBuffer);
reversedSong = minim.createSample(reversedBuffer, songPlayer.getFormat());
reversedSong.trigger();
}
我也尝试了一些不同的解决方案。即直接将文件导入到AudioSample
. 我相信我已经使用过的大多数方法的问题在于我只能访问一个AudioBuffer
,即整个声音的一部分。因此,我无法扭转这一切。
你知道这样做的任何方法吗?