AudioPlayerクラス:ストリーミング再生
import ddf.minim.*; Minim minim; AudioPlayer audio; float X,Y; void setup(){ size(200,200); colorMode(HSB,100); background(99); smooth(); strokeCap(SQUARE); minim = new Minim(this); audio = minim.loadFile("01 It's My Life.mp3",2048); X = width/2; Y = height/2; } void draw(){ background(99); stroke(60); strokeWeight(1); if(dist(mouseX,mouseY,X,Y) < 20 ) { if(mousePressed) { fill(90,99,99); } else { fill(90,99,99,30); } }else { fill(99); } ellipse(X,Y,40,40); fill(99); if(audio.isPlaying()){ rect(X-5,Y-5,10,10); } else { triangle(X-4.3,Y-5,X-4.3,Y+5,X+4.3,Y); } float played = float(audio.position()) / audio.length(); stroke(90,99,99,30); strokeWeight(10); noFill(); arc(X,Y,100,100,radians(-90),radians(-90 + (played * 360)) ); } void mousePressed(){ if(dist(mouseX,mouseY,X,Y) < 20){ if(audio.isPlaying()){ audio.pause(); } else { audio.play(); } } } void stop() { audio.close(); minim.stop(); super.stop(); }
AudioSampleクラス;ファイルサイズが大きくない音声ファイルを読み込み、再生、停止を行う。
import ddf.minim.*; Minim minim; AudioSample[] sample; int ButtonNum = 3; float[] X,Y; void setup(){ size(200,200); colorMode(HSB,100); background(99); smooth(); minim = new Minim(this); sample = new AudioSample[ButtonNum]; sample[0] = minim.loadSample("b_062.mp3"); sample[1] = minim.loadSample("b_021.mp3"); sample[2] = minim.loadSample("b_083.mp3"); X = new float[ButtonNum]; Y = new float[ButtonNum]; for(int i = 0;i<ButtonNum;i++){ X[i] = 50 + 50*i; Y[i] = height / 2; } } void draw(){ background(99); stroke(60); strokeWeight(1); for(int i=0;i<ButtonNum;i++){ updateButton(i); } } void updateButton(int i){ if(dist(mouseX,mouseY,X[i],Y[i]) < 20 ) { if(mousePressed){ fill(90,99,99); } else { fill(90,99,99,30); } } else { fill(99); } ellipse(X[i],Y[i],40,40); fill(99); } void mousePressed(){ for(int i=0;i<ButtonNum;i++){ if(dist(mouseX,mouseY,X[i],Y[i]) < 20) { sample[i].trigger(); } } } void stop(){ for(int i = 0;i<ButtonNum;i++){ sample[i].close(); } minim.stop(); super.stop(); }