[英]Wav File in Minim plays too fast
我正在嘗試使用處理和最小庫將wav文件加載到FilePlayer中(后來我想在其上修補一個延遲)。 但是,我得到的wav文件播放速度太快,至少以預期的速度播放,而且音調很高。 如果在VLC Media Player或WMP中播放該文件,則聽起來像是應該的。 它以20kbps的比特率長5秒,但是代碼打印出來是2299ms長。
碼:
import ddf.minim.*;
import ddf.minim.ugens.*;
import ddf.minim.spi.*;
Minim minim;
AudioOutput out;
FilePlayer filePlayer;
Delay myDelay;
void setup() {
size(100, 100);
minim = new Minim(this);
AudioRecordingStream myFile = minim.loadFileStream( "audio1.wav", 1024, true);
filePlayer = new FilePlayer( myFile );
filePlayer.play();
filePlayer.loop();
out = minim.getLineOut();
// patch the file player to the output
filePlayer.patch(out);
println(filePlayer.length()); //This prints out 2299
}
void draw()
{
background( 0 );
}
嘗試使用您的音頻文件:
import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;
Minim minim;
FilePlayer filePlayer;
AudioOutput out;
Delay delay;
void setup(){
size(640, 240);
minim = new Minim(this);
AudioRecordingStream file = minim.loadFileStream( "marcus_kellis_theme.mp3",1024,true);
filePlayer = new FilePlayer( file );
filePlayer.loop(1);//play forever
delay = new Delay( 0.4, .9, true, true );
out = minim.getLineOut();
filePlayer.patch(delay).patch(out);
}
void mousePressed(){
delay.setDelAmp(0);
}
void mouseReleased(){
delay.setDelAmp(.9);
}
void draw(){
background( 0 );
stroke( 255 );
beginShape(LINES);
for( int i = 0; i < out.bufferSize() - 1; i++ ){
// find the x position of each buffer value
float x1 = map( i, 0, out.bufferSize(), 0, width );
float x2 = map( i+1, 0, out.bufferSize(), 0, width );
// draw a line from one buffer position to the next for both channels
vertex( x1, 50 + out.left.get(i)*50);vertex(x2, 50 + out.left.get(i+1)*50);
vertex( x1, 150 + out.right.get(i)*50);vertex( x2, 150 + out.right.get(i+1)*50);
}
endShape();
}
如果無法正確播放,請嘗試在Audacity中將其打開並將其導出為16位帶符號的wav。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.