好的,所以我正在處理Processing中的一個簡單的fft可視化,並且認爲每次播放不止一首歌曲會很有趣。最後,我手動添加了3首歌曲,並使用預定義的字符串隨機在歌曲之間進行鼠標單擊更改。我想添加剩餘的電腦音樂,但每次我想要爲草圖添加一首新歌曲時,我都必須將其名稱複製並粘貼到草圖中的字符串中。似乎很多不必要的工作根據Processing中的文件夾中的文件創建一個自我更新字符串
有沒有辦法進行處理掃描文件夾,識別裏面有多少文件,並將所有文件名複製到字符串中?我找到一個名爲sDrop的庫來處理1.1,它可以讓你直接拖放文件到草圖中。但是,這在處理版本2+中似乎不再存在。
下面是一個簡單的版本,我目前工作的代碼來播放音樂:
import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;
AudioPlayer player;
Minim minim;
String [] songs = {
"song1.mp3",
"song2.mp3",
"song3.mp3",
};
int index;
void setup() {
size(100, 100, P3D);
index = int(random(songs.length));
minim = new Minim(this);
player = minim.loadFile(songs[index]);
player.play();
}
void draw() {
}
void mouseClicked() {
index = int(random(songs.length));
player.pause();
player = minim.loadFile(songs[index]);
player.play();
}
如果任何人有意見或會引導我走向一個很好的教程,這將是巨大的。謝謝!
真棒的感謝!我花了一段時間才意識到我需要在目錄名稱而不是\的路徑中使用\\。因此「C:\\ Users \\ username \\ etc \\ etc」而不是「C:\ Users \ username \ etc \ etc」。但是一旦我這樣做了代碼就完美了。 你能告訴我什麼!f代表什麼?我把它理解爲「不」,但在這種情況下對我來說沒有意義。 同時感謝您向我展示API是什麼。我對它的龐大程度感到不知所措,但這對未來會有很大的幫助! – 2014-11-24 18:35:00
String中的單個\是一個轉義字符。例如,「\ n」代表「換行符」。所以當你需要鍵入一個實際的\而不是一個轉義字符時,你必須轉義\,這使得它「\\」。而f變量是File的一個實例,它有一個返回布爾值的isDirectory()方法。我正在使用!f.isDirectory()基本上說「如果這個文件不是一個目錄,那麼它一定是一首歌」。 – 2014-11-24 18:45:44
感謝您的理解。我認爲現在對我來說很有意義。至少直到下一次它打破:) – 2014-11-24 19:09:10