Läs alla magnetremsa kort med en fyrkantig läsare och en Android-enhet (3 / 5 steg)
Steg 3: Spela in något ljud
Vad beträffar Android-telefonen är är den fyrkantiga läsaren bara en mikrofon. Så för att få data från ett kort, måste vi spela in ljud. Andra Android dokumentationen (som denna tutorial: http://eurodev.blogspot.com/2009/09/raw-audio-manipulation-in-android.html) för detaljerade instruktioner, eller Använd RhombusLib (se länkar i slutet).Här är några Javakod att starta ljudinspelning i en Android app:
AudioRecord audioRecord = ny AudioRecord (MediaRecorder.AudioSource.MIC,
frekvens, channelConfiguration,
audioEncoding, bufferSize);
audioRecord.startRecording();
Under inspelningen måste vi hela tiden läsa data från brännaren och placera den i en buffert.
Skapa en DataOutputStream för att skriva ljuddata
ByteArrayOutputStream os = nya ByteArrayOutputStream();
BufferedOutputStream BIM = nya BufferedOutputStream(os);
DataOutputStream dos = nya DataOutputStream(bos);
korta bufferVal;
[kort] buffert = nya kort [bufferSize];
While(Recording) {
bufferReadResult = audioRecord.read (buffert, 0, bufferSize);
för (int jag = 0; jag < bufferReadResult; i ++) {
bufferVal = buffert [i];
dos.writeShort(buffer[i]);
}
}
DOS.Close();
byte [] audioBytes = os.toByteArray();
Ovanstående kod extraheras och förenklad från RhombusLib. Efter inspelningen har du en array som representerar proverna från mikrofonen, redo att analyseras.