音樂播放器
構思1.讀取音樂
--------功能--------------
1.顯示音樂清單
2.顯示音樂時間
3.快轉/倒轉按鈕
4.暫停/開始按鈕
5.音量大/小按鈕
6.上一首/下一首按鈕
第二次 介面
硬體:
實際畫面:
實際顯示畫面:
實際操作:
2013 互動blogger
http://2013interaction.blogspot.tw/search?updated-max=2014-01-12T20:52:00-08:00&max-results=7&start=7&by-date=false
互動程式應用與設計 Arduino結合processing設計成果
https://www.youtube.com/watch?v=VXYqlfT8Iu4互動程式應用與設計 Arduino結合processing範例
http://coopermaa2nd.blogspot.tw/2011/03/processing-arduino.html
-------------Arduino---------------------------
void setup(){
Serial.begin(9600);
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
}
void loop(){
int sensorplay = digitalRead(2);
int sensorvoiceup = digitalRead(3);
int sensorvoicedown = digitalRead(4);
int next = digitalRead(5);
int up = digitalRead(6);
if(sensorplay == LOW)
{//播放/暫停
digitalWrite(13,LOW);
Serial.write('A');
}
if(sensorvoiceup == LOW)
{//音量增加ccac
digitalWrite(13,LOW);
Serial.write('B');
}
if(sensorvoicedown == LOW)
{//音量減少
digitalWrite(13,LOW);
Serial.write('C');
}
if(next == LOW)
{// 下一首
digitalWrite(13,LOW);
Serial.write('D');
}
if(up == LOW)
{// 上一首
digitalWrite(13,LOW);
Serial.write('E');
}
delay(125);
}
-----------------Processing-----------------------
import ddf.minim.*;
PImage imgBG;
PImage img;
Minim minim;
AudioPlayer player[]=new AudioPlayer[9];
AudioSnippet soundNoise;
import processing.serial.*;
Serial myPort;
void setup(){
size(700,460);
img = loadImage("star.png");
imgBG=loadImage("index.png");
background(imgBG);
myPort=new Serial(this,"COM6",9600);
minim = new Minim(this);
player[0] = minim.loadFile("JJ2.mp3");
player[1] = minim.loadFile("JJ1.mp3");
player[2] = minim.loadFile("JJ3.mp3");
player[3] = minim.loadFile("JJ4.mp3");
player[4] = minim.loadFile("JJ5.mp3");
player[5] = minim.loadFile("JJ6.mp3");
player[6] = minim.loadFile("JJ7.mp3");
player[7] = minim.loadFile("JJ8.mp3");
player[8] = minim.loadFile("JJ9.mp3");
for(int i=0;i<9;i++)println(player[i].getControls());
}
int hear=0,voiceup=0,voicedown=0;
int v=0,i=0,next=0,up=0,y=120;
void draw()
{
background(imgBG);
if(myPort.available()>0)
{
int a=myPort.read();
if(a=='A') hear++;
if(a=='B') {voiceup=1; v+=1;}
if(a=='C') {voiceup=1; v-=1;}
if(a=='D') {next=1;if(i<8&&i>=0){i+=1;y+=38;}else i+=0;}
if(a=='E') {up=1;if(i<=8&&i>0){i-=1;y-=38;}else i+=0;}
}
//--------------wave---------------------
float x1, y1, x2, y2;
int w;
stroke(150,255,0);
for (w = 0; w < player[i].bufferSize() - 1; w++) {
x1 = w;
y1 = 40 + player[i].left.get(w) * 50;
x2 = w+1;
y2 = 40 + player[i].left.get(w+1) * 50;
line(x1, y1, x2, y2);
}
//-----------------------------------------
if(hear%2==1)
{
player[i].play();image(img,185,y);
}
if(hear%2==0)
{
player[i].pause();
}
//---------voice-up---------------
if(voiceup==1 &&v>-10 &&v<10 )
{
println(v);
if(v<=10) player[i].setGain(v);
voiceup=0;
}
//----------NEXTmusic-------------
if(next==1 )
{
if(i>=0 &&i<9)player[i-1].pause();
println(i);image(img,185,y);
next=0;
}
//----------UPmusic-------------
if(up==1)
{
if(i>=0 &&i<9)player[i+1].pause();
println(i);image(img,185,y);
up=0;
}
}
void stop()
{
player[i].close();
minim.stop();
super.stop();
}






作者已經移除這則留言。
回覆刪除滑鼠控制音量
刪除import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup()
{
size(320, 240);
minim = new Minim(this);
player = minim.loadFile("Amazing Grace.mp3");
player.loop();
println(player.getControls());
}
void draw()
{
float v;
v = log(mouseX+0.0001) * 2.37 / log(10);
println(v);
player.setGain(v);
if (v < 0) { v = 0; }
background((v - 3.0) / (6.0 - 3.0) * 255.0);
}
void stop()
{
player.close();
minim.stop();
super.stop();
}
開始暫停
回覆刪除import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup()
{
size(320, 240);
minim = new Minim(this);
player = minim.loadFile("Amazing Grace.mp3");
player.play();
}
void draw()
{
background(255);
if (keyPressed == true) {
if (key == ' ') {
if (player.isPlaying() == true) {
player.pause();
} else {
player.play();
}
}
}
}
void stop()
{
player.close();
minim.stop();
super.stop();
}
Arduino
回覆刪除增加5,6兩個鍵
--------------------------------------------
void setup(){
Serial.begin(9600);
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
}
void loop(){
int sensorplay = digitalRead(2);
int sensorvoiceup = digitalRead(3);
int sensorvoicedown = digitalRead(4);
int next = digitalRead(5);
int up = digitalRead(6);
if(sensorplay == LOW)
{//播放/暫停
digitalWrite(13,LOW);
Serial.write('A');
}
if(sensorvoiceup == LOW)
{//音量增加ccac
digitalWrite(13,LOW);
Serial.write('B');
}
if(sensorvoicedown == LOW)
{//音量減少
digitalWrite(13,LOW);
Serial.write('C');
}
if(next == LOW)
{// 下一首
digitalWrite(13,LOW);
Serial.write('D');
}
if(up == LOW)
{// 上一首
digitalWrite(13,LOW);
Serial.write('E');
}
delay(125);
}
processing
回覆刪除加了星星符號
----------------------------------------------
import ddf.minim.*;
PImage imgBG;
PImage img;
Minim minim;
AudioPlayer player[]=new AudioPlayer[2];
AudioSnippet soundNoise;
import processing.serial.*;
Serial myPort;
void setup(){
size(700,400);
img = loadImage("star.png");
imgBG=loadImage("index.png");
background(imgBG);
myPort=new Serial(this,"COM4",9600);
minim = new Minim(this);
player[0] = minim.loadFile("JJ1.mp3");//JJhear
player[1] = minim.loadFile("JJ2.mp3");//JJpraticelove
for(int i=0;i<2;i++)println(player[i].getControls());
}
int hear=0,voiceup=0,voicedown=0;
int v=0,i=0,next=0,up=0,y=42;
void draw()
{
background(imgBG);
if(myPort.available()>0)
{
int a=myPort.read();
if(a=='A') hear++;
if(a=='B') {voiceup=1; v+=1;}
if(a=='C') {voiceup=1; v-=1;}
if(a=='D') {next=1;if(i<1&&i>=0)i+=1;else i+=0;}
if(a=='E') {up=1;if(i<=1&&i>0)i-=1;else i+=0;}
}
if(hear%2==1)
{
player[i].play();image(img,180,y);
}
if(hear%2==0)
{
player[i].pause();
}
//---------voice-up---------------
if(voiceup==1 &&v>-10 &&v<10 )
{
println(v);
if(v<=10) player[i].setGain(v);
voiceup=0;
}
//----------NEXTmusic-------------
if(next==1 )
{
if(i>=0 &&i<=1)player[i-1].pause();
println(i);image(img,180,y+=41);
next=0;
}
//----------UPmusic-------------
if(up==1)
{
if(i>=0 &&i<=1)player[i+1].pause();
println(i);image(img,180,y-=41);
up=0;
}
}
void stop()
{
player[i].close();
minim.stop();
super.stop();
}