【发布时间】:2014-05-28 10:53:26
【问题描述】:
我需要在 Processing 中创建一个程序来反转加载的 .mp3 文件,避免已经实现的抽象函数(例如,反转给定声音的 Minim 函数,尽管我仍然没有没有找到这样的)。我现在已经尝试了很多方法,但它仍然无法播放。
我的最后一种方法是使用Minim.loadFileIntoBuffer() 函数获取float[],然后我使用Processing 的reverse() 函数反转缓冲区。然后,我使用相同的float 数组和原始文件的格式创建一个AudioSample。然后我继续使用trigger() 播放样本。
这是一个sn-p:
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,即整个声音的一部分。因此,我无法扭转这一切。
你知道有什么方法吗?
【问题讨论】:
-
不要将其添加为评论。改为编辑您的帖子
标签: processing minim