Ecco il codice:
public class MainActivity extends Activity { // dichiarazioni di variabili oggetto dell'activity Button button; Button button2; Button button3; Button button4; //il percorso del file String filePath = Environment.getExternalStorageDirectory() .getAbsolutePath() + "/vaffanculo.wav"; // registratore e riproduttore (dichiarazioni) AudioRecord audioRecord; AudioTrack audioTrack; //impostazioni audio int audioSource=AudioSource.MIC; int sampleRate=44100; int channelConfig=AudioFormat.CHANNEL_IN_STEREO; int audioFormat=AudioFormat.ENCODING_PCM_16BIT; int minBufferSize=AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat); // dichiarazione del buffer byte[] buffer= new byte[minBufferSize]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //istanziazione dei bottoni button = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); button3 = (Button) findViewById(R.id.button3); button4 = (Button) findViewById(R.id.button4); //listeners button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { FileInputStream fis=new FileInputStream(filePath); fis.read(buffer,0,minBufferSize); for(int i=0; i < minBufferSize;i++){ Log.v(i+"",buffer[i]+""); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); button4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); // termine listeners } }La parte notevole è questa:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { FileInputStream fis=new FileInputStream(filePath); fis.read(buffer,0,minBufferSize); for(int i=0; i < minBufferSize;i++){ Log.v(i+"",buffer[i]+""); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } });Creo un FileInputStream con l'indirizzo del file, e quindi con la riga scritta in verde "leggo" i bytes del file nel buffer.
Quindi schiaccio il bottone, produco il LogCat e mi leggo pezzo per pezzo ogni byte, di cui riporto i primi 100:
03-21 08:22:49.520: V/0(19511): 74 03-21 08:22:49.520: V/1(19511): 1 03-21 08:22:49.520: V/2(19511): 74 03-21 08:22:49.520: V/3(19511): 1 03-21 08:22:49.520: V/4(19511): 50 03-21 08:22:49.520: V/5(19511): 1 03-21 08:22:49.520: V/6(19511): 50 03-21 08:22:49.520: V/7(19511): 1 03-21 08:22:49.520: V/8(19511): 22 03-21 08:22:49.520: V/9(19511): 1 03-21 08:22:49.520: V/10(19511): 22 03-21 08:22:49.520: V/11(19511): 1 03-21 08:22:49.520: V/12(19511): -9 03-21 08:22:49.520: V/13(19511): 0 03-21 08:22:49.520: V/14(19511): -9 03-21 08:22:49.520: V/15(19511): 0 03-21 08:22:49.520: V/16(19511): -42 03-21 08:22:49.520: V/17(19511): 0 03-21 08:22:49.520: V/18(19511): -42 03-21 08:22:49.520: V/19(19511): 0 03-21 08:22:49.520: V/20(19511): -77 03-21 08:22:49.520: V/21(19511): 0 03-21 08:22:49.520: V/22(19511): -77 03-21 08:22:49.520: V/23(19511): 0 03-21 08:22:49.520: V/24(19511): -112 03-21 08:22:49.520: V/25(19511): 0 03-21 08:22:49.520: V/26(19511): -112 03-21 08:22:49.520: V/27(19511): 0 03-21 08:22:49.520: V/28(19511): 110 03-21 08:22:49.520: V/29(19511): 0 03-21 08:22:49.520: V/30(19511): 110 03-21 08:22:49.520: V/31(19511): 0 03-21 08:22:49.520: V/32(19511): 79 03-21 08:22:49.520: V/33(19511): 0 03-21 08:22:49.520: V/34(19511): 79 03-21 08:22:49.520: V/35(19511): 0 03-21 08:22:49.520: V/36(19511): 51 03-21 08:22:49.520: V/37(19511): 0 03-21 08:22:49.520: V/38(19511): 51 03-21 08:22:49.520: V/39(19511): 0 03-21 08:22:49.520: V/40(19511): 27 03-21 08:22:49.520: V/41(19511): 0 03-21 08:22:49.520: V/42(19511): 27 03-21 08:22:49.520: V/43(19511): 0 03-21 08:22:49.520: V/44(19511): 8 03-21 08:22:49.520: V/45(19511): 0 03-21 08:22:49.520: V/46(19511): 8 03-21 08:22:49.520: V/47(19511): 0 03-21 08:22:49.520: V/48(19511): -8 03-21 08:22:49.520: V/49(19511): -1 03-21 08:22:49.520: V/50(19511): -8 03-21 08:22:49.520: V/51(19511): -1 03-21 08:22:49.520: V/52(19511): -22 03-21 08:22:49.520: V/53(19511): -1 03-21 08:22:49.520: V/54(19511): -22 03-21 08:22:49.520: V/55(19511): -1 03-21 08:22:49.520: V/56(19511): -35 03-21 08:22:49.520: V/57(19511): -1 03-21 08:22:49.520: V/58(19511): -35 03-21 08:22:49.520: V/59(19511): -1 03-21 08:22:49.520: V/60(19511): -48 03-21 08:22:49.520: V/61(19511): -1 03-21 08:22:49.520: V/62(19511): -48 03-21 08:22:49.520: V/63(19511): -1 03-21 08:22:49.520: V/64(19511): -62 03-21 08:22:49.520: V/65(19511): -1 03-21 08:22:49.520: V/66(19511): -62 03-21 08:22:49.520: V/67(19511): -1 03-21 08:22:49.520: V/68(19511): -78 03-21 08:22:49.520: V/69(19511): -1 03-21 08:22:49.520: V/70(19511): -78 03-21 08:22:49.520: V/71(19511): -1 03-21 08:22:49.520: V/72(19511): -96 03-21 08:22:49.520: V/73(19511): -1 03-21 08:22:49.520: V/74(19511): -96 03-21 08:22:49.520: V/75(19511): -1 03-21 08:22:49.520: V/76(19511): -114 03-21 08:22:49.520: V/77(19511): -1 03-21 08:22:49.520: V/78(19511): -114 03-21 08:22:49.520: V/79(19511): -1 03-21 08:22:49.520: V/80(19511): 125 03-21 08:22:49.520: V/81(19511): -1 03-21 08:22:49.520: V/82(19511): 125 03-21 08:22:49.520: V/83(19511): -1 03-21 08:22:49.520: V/84(19511): 109 03-21 08:22:49.520: V/85(19511): -1 03-21 08:22:49.520: V/86(19511): 109 03-21 08:22:49.520: V/87(19511): -1 03-21 08:22:49.520: V/88(19511): 96 03-21 08:22:49.520: V/89(19511): -1 03-21 08:22:49.520: V/90(19511): 96 03-21 08:22:49.520: V/91(19511): -1 03-21 08:22:49.520: V/92(19511): 87 03-21 08:22:49.520: V/93(19511): -1 03-21 08:22:49.520: V/94(19511): 87 03-21 08:22:49.520: V/95(19511): -1 03-21 08:22:49.520: V/96(19511): 82 03-21 08:22:49.520: V/97(19511): -1 03-21 08:22:49.520: V/98(19511): 82 03-21 08:22:49.520: V/99(19511): -1 03-21 08:22:49.520: V/100(19511): 81Sono 278 bytes in totale. Ma il buffer di che dimensione è?
Modifico il codice per ottenere minBufferSize in LogCat:
FileInputStream fis=new FileInputStream(filePath); fis.read(buffer,0,minBufferSize); for(int i=0; i < minBufferSize;i++){ Log.v("BUFFERSIZE",i+"",buffer[i]+""); } .....Ottengo 640, che è pure il valore che ottengo come risultato della funzione fis.read(buffer,0,minBufferSize).
Ma adesso voglio trovare modi diversi di inserire i valori nel buffer.
FileInputStream fis=new FileInputStream(filePath); for(int i=0; i < minBufferSize;i++){ buffer[i]=(byte)fis.read(); } for(int i=0; i < minBufferSize;i++){ Log.v(i+"",buffer[i]+""); }ed ecco il risultato:
03-21 08:59:47.970: V/0(26357): 74 03-21 08:59:47.970: V/1(26357): 1 03-21 08:59:47.970: V/2(26357): 74 03-21 08:59:47.970: V/3(26357): 1 03-21 08:59:47.970: V/4(26357): 50 03-21 08:59:47.970: V/5(26357): 1 03-21 08:59:47.970: V/6(26357): 50 03-21 08:59:47.970: V/7(26357): 1 03-21 08:59:47.970: V/8(26357): 22 03-21 08:59:47.970: V/9(26357): 1 03-21 08:59:47.970: V/10(26357): 22 03-21 08:59:47.970: V/11(26357): 1 03-21 08:59:47.970: V/12(26357): -9 03-21 08:59:47.970: V/13(26357): 0 03-21 08:59:47.970: V/14(26357): -9 03-21 08:59:47.970: V/15(26357): 0 03-21 08:59:47.970: V/16(26357): -42 03-21 08:59:47.970: V/17(26357): 0 03-21 08:59:47.970: V/18(26357): -42 03-21 08:59:47.970: V/19(26357): 0 03-21 08:59:47.970: V/20(26357): -77 03-21 08:59:47.970: V/21(26357): 0 03-21 08:59:47.970: V/22(26357): -77 03-21 08:59:47.970: V/23(26357): 0 03-21 08:59:47.970: V/24(26357): -112 03-21 08:59:47.970: V/25(26357): 0 03-21 08:59:47.970: V/26(26357): -112 03-21 08:59:47.970: V/27(26357): 0 03-21 08:59:47.970: V/28(26357): 110 03-21 08:59:47.970: V/29(26357): 0 03-21 08:59:47.970: V/30(26357): 110 03-21 08:59:47.970: V/31(26357): 0 03-21 08:59:47.970: V/32(26357): 79 03-21 08:59:47.970: V/33(26357): 0 03-21 08:59:47.970: V/34(26357): 79 03-21 08:59:47.970: V/35(26357): 0 03-21 08:59:47.970: V/36(26357): 51 03-21 08:59:47.970: V/37(26357): 0 03-21 08:59:47.970: V/38(26357): 51 03-21 08:59:47.970: V/39(26357): 0 03-21 08:59:47.970: V/40(26357): 27 03-21 08:59:47.970: V/41(26357): 0 03-21 08:59:47.970: V/42(26357): 27 03-21 08:59:47.970: V/43(26357): 0 03-21 08:59:47.970: V/44(26357): 8 03-21 08:59:47.970: V/45(26357): 0 03-21 08:59:47.970: V/46(26357): 8 03-21 08:59:47.970: V/47(26357): 0 03-21 08:59:47.970: V/48(26357): -8 03-21 08:59:47.970: V/49(26357): -1 03-21 08:59:47.970: V/50(26357): -8 03-21 08:59:47.970: V/51(26357): -1 03-21 08:59:47.970: V/52(26357): -22 03-21 08:59:47.970: V/53(26357): -1 03-21 08:59:47.970: V/54(26357): -22 03-21 08:59:47.970: V/55(26357): -1 03-21 08:59:47.970: V/56(26357): -35 03-21 08:59:47.970: V/57(26357): -1 03-21 08:59:47.970: V/58(26357): -35 03-21 08:59:47.970: V/59(26357): -1 03-21 08:59:47.970: V/60(26357): -48 03-21 08:59:47.970: V/61(26357): -1 03-21 08:59:47.970: V/62(26357): -48 03-21 08:59:47.970: V/63(26357): -1 03-21 08:59:47.970: V/64(26357): -62 03-21 08:59:47.970: V/65(26357): -1 03-21 08:59:47.970: V/66(26357): -62 03-21 08:59:47.970: V/67(26357): -1 03-21 08:59:47.970: V/68(26357): -78 03-21 08:59:47.970: V/69(26357): -1 03-21 08:59:47.970: V/70(26357): -78 03-21 08:59:47.970: V/71(26357): -1 03-21 08:59:47.970: V/72(26357): -96 03-21 08:59:47.970: V/73(26357): -1 03-21 08:59:47.970: V/74(26357): -96 03-21 08:59:47.970: V/75(26357): -1 03-21 08:59:47.970: V/76(26357): -114 03-21 08:59:47.970: V/77(26357): -1 03-21 08:59:47.970: V/78(26357): -114 03-21 08:59:47.970: V/79(26357): -1 03-21 08:59:47.970: V/80(26357): 125 03-21 08:59:47.970: V/81(26357): -1 03-21 08:59:47.970: V/82(26357): 125 03-21 08:59:47.970: V/83(26357): -1 03-21 08:59:47.970: V/84(26357): 109 03-21 08:59:47.970: V/85(26357): -1 03-21 08:59:47.970: V/86(26357): 109 03-21 08:59:47.970: V/87(26357): -1 03-21 08:59:47.970: V/88(26357): 96 03-21 08:59:47.970: V/89(26357): -1 03-21 08:59:47.970: V/90(26357): 96 03-21 08:59:47.970: V/91(26357): -1 03-21 08:59:47.970: V/92(26357): 87 03-21 08:59:47.970: V/93(26357): -1 03-21 08:59:47.970: V/94(26357): 87 03-21 08:59:47.970: V/95(26357): -1 03-21 08:59:47.970: V/96(26357): 82 03-21 08:59:47.970: V/97(26357): -1 03-21 08:59:47.970: V/98(26357): 82 03-21 08:59:47.970: V/99(26357): -1 03-21 08:59:47.970: V/100(26357): 81Questi valori sono esattamente uguali a quelli ricavati prima.
Nessun commento:
Posta un commento