package ddf.minim.tests;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.nio.file.Paths;
import ddf.minim.Minim;
import ddf.minim.spi.AudioRecordingStream;
public class AudioRecordingStreamLoop
{
String fileFolder;
Minim minim;
public static void main(String[] args)
{
AudioRecordingStreamLoop test = new AudioRecordingStreamLoop();
test.Start(args);
}
void Start(String[] args)
{
fileFolder = args[0];
minim = new Minim(this);
AudioRecordingStream recording = minim.loadFileStream( args[1] );
int loopCount = 1;
// return -1 for the current test mp3, which means i probably need to test with a wav
long expectedReads = recording.getSampleFrameLength()*(loopCount+1);
long reads = 0;
recording.loop( loopCount );
while( recording.isPlaying() && reads < expectedReads )
{
if ( reads == 743041 )
{
System.out.println("..");
}
recording.read();
++reads;
if ( recording.getLoopCount() == -1 )
{
System.err.println( "Loop count became -1 after " + reads + " reads!" );
break;
}
}
if ( expectedReads != reads )
{
System.err.println( "Expected " + expectedReads + " reads, and made " + reads );
}
else if ( recording.isPlaying() )
{
System.err.println( "Recording is still playing after expected number of read." );
}
}
public String sketchPath( String fileName )
{
return Paths.get( fileFolder, fileName ).toString();
}
public InputStream createInput( String fileName )
{
FileInputStream stream = null;
try
{
stream = new FileInputStream(sketchPath(fileName));
}
catch( FileNotFoundException ex )
{
System.err.println( "Unable to find file " + fileName );
}
return stream;
}
}