|
Minim |
|
|
length |
Description Returns the length of the sound in milliseconds. If for any reason the length could not be determined, this will return -1. However, an unknown length should not impact playback.Signature int length() Returns int: the length of the sound in milliseconds Related AudioPlayerExample /**
* This sketch demonstrates how to use the cue method of AudioPlayer.
* When you cue, it is always measured from the beginning of the recording.
* So cue(100) will set the "playhead" at 100 milliseconds from the beginning
* no matter where it currently is. Cueing an AudioPlayer will not change the playstate,
* meaning that if it was already playing it will continue playing from the cue point,
* but if it was not playing, cueing will not start playback, it will simply set the point
* at which playback will begin. If an error occurs while trying to cue, the position will not change.
* If you try to cue to a negative position or try to cue past the end of the
* recording, the amount will be clamped to zero or length().
*
* Click in the window to cue to that position in the file.
*/
import ddf.minim.*;
Minim minim;
AudioPlayer groove;
void setup()
{
size(512, 200, P3D);
minim = new Minim(this);
groove = minim.loadFile("groove.mp3");
groove.loop();
}
void draw()
{
background(0);
stroke( 255 );
for(int i = 0; i < groove.bufferSize() - 1; i++)
{
line(i, 50 + groove.left.get(i)*50, i+1, 50 + groove.left.get(i+1)*50);
line(i, 150 + groove.right.get(i)*50, i+1, 150 + groove.right.get(i+1)*50);
}
stroke( 255, 0, 0 );
float position = map( groove.position(), 0, groove.length(), 0, width );
line( position, 0, position, height );
text("Click anywhere to jump to a position in the song.", 10, 20);
}
void mousePressed()
{
// choose a position to cue to based on where the user clicked.
// the length() method returns the length of recording in milliseconds.
int position = int( map( mouseX, 0, width, 0, groove.length() ) );
groove.cue( position );
}
Usage Web & Application |