機能的なインポート ボタンを作成できるようにしようとしています。つまり、ボタンをクリックすると、ファイル ブラウザがポップアップし、曲をクリックしてプレーヤーで再生できます。他の音楽プレーヤーと同じように。クラスを除いたこれまでの私のコードの基本的なビューは次のとおりです。
import ddf.minim.spi.*;
import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.ugens.*;
boolean play;
boolean repeat;
int k;
String filename;//
Minim minim;
AudioPlayer player;
Pics p;
Mechs m;
Importbt b;
ArrayList<Songs> s;
int i=0;
void setup() {
size(600, 400);
b=new Importbt();
m=new Mechs();
p=new Pics();
p.Thepics();
minim=new Minim(this);
s = new ArrayList();
s.add(new Songs(player, "SONG 1", "SONG 1"));
s.add(new Songs(player, "SONG 2", "SONG 2"));
s.add(new Songs(player, "SONG 3", "SONG 3"));
s.add(new Songs(player, "SONG 4", "SONG 4"));
k = s.size()-1;
}
void draw() {
background(0);
p.getFunction();
}
void fileSelected(File selection) {
if (selection == null) {
}
else {
filename = selection.getAbsolutePath();
player = minim.loadFile(filename);//loads the file
// s.add(k, new Songs(player, filename, "a song"));
//s.get(k).playmusic();
s.add(new Songs(player, filename, "ftyu"));
s.get(k).waveform();//function from my songs class
player.play();//plays the file
必要に応じて私のクラスについて
class Songs {
AudioPlayer song;
String directory;
String songName;
Songs(AudioPlayer song, String directory, String songName) {
song=minim.loadFile(directory);
this.song=song;
this.songName=songName;
}
void waveform() {
for (int j = 1; j < song.bufferSize() - 1; j++)
{
if (j>0) {
line(j, 214 + song.left.get(j)*50, j+1, 214 + song.left.get(j+1)*50);
//waves from the left.
stroke( 255, 0, 0 ); //this is the colour of the first line (red)
line(j, 214 + song.right.get(j)*50, j+1, 214 + song.right.get(j+1)*50);
//waves from the right.
stroke(255, 255, 0);
}
}