Ho letto l'SDK di Android e ho scoperto che la classe MediaRecorder può ricevere input da una videocamera, audio o altra fonte e comprimerla. Tramite il metodo setOutputFile è possibile specificare dove si desidera archiviare i dati (file o URI), ma cosa succede se si desidera archiviare tali dati in un buffer di memoria e inviarli tramite una connessione? Oppure elaborarlo prima di inviarlo? Voglio dire c'è un modo per non creare un file ma per usare solo un buffer di memoria?Android MediaRecorder e setOutputFile
7
A
risposta
1
Puoi ovviamente leggere il file in un secondo momento e fare quello che vuoi con esso nel modo di elaborazione. Supponendo che tu tenga l'Uri al file audio risultante, ecco uno snippet di codice che lo legge in un array di byte e quindi elimina il file.
String audioUri = u.getPath();
InputStream in = new BufferedInputStream(this.getContentResolver().openInputStream(u));
byte[] b = new byte[BUFSIZE];
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(mFileName/*mFilePath*/)));
int byteCnt = 0;
while (0 <= (byteCnt = in.read(b, 0, BUFSIZE)))
out.write(b, 0, byteCnt);
out.flush();
out.close();
// try to delete media file
try {
// Delete media file pointed to by Uri
new File(getRealPathFromURI(u)).delete();
} catch (Exception ex) {}
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Problemi correlati
- 1. Utilizzando MediaRecorder Android
- 2. Android: MediaRecorder @ Native code
- 3. android - MediaRecorder lancia illegittimaescrizione
- 4. MediaRecorder Android in streaming
- 5. MediaRecorder e UDP (DatagramSocket) in Android
- 6. Android MediaRecorder - "start failed: -19"
- 7. mediacodec vs mediaplayer e mediarecorder
- 8. Problema con Android MediaRecorder setVideoSize()
- 9. MediaRecorder Android setCaptureRate() e velocità di riproduzione video
- 10. MediaRecorder start() fallisce se chiamato troppo velocemente
- 11. in streaming un file MediaRecorder durante la registrazione
- 12. MediaRecorder start codici di errore
- 13. Come sapere quando MediaRecorder ha terminato la scrittura dei dati su file
- 14. Streaming video da MediaRecorder tramite LocalSocket
- 15. MediaRecorder modifica le dimensioni senza provocazione
- 16. MediaRecorder registrazione solo in 15 FPS
- 17. Android: Come inizializzare MediaRecorder senza una superficie valida per l'anteprima video?
- 18. Perché la funzione MediaRecorder non causa l'errore ANR?
- 19. Ottieni/modifica fotogrammi durante la registrazione di mp4 con MediaRecorder
- 20. Come sapere se un MediaRecorder è in esecuzione o no?
- 21. MediaRecorder si arresta in modo anomalo quando si registra un secondo clip audio
- 22. come cambiare l'orientamento del video in MediaRecorder a ritratto
- 23. MediaRecorder: il codice ha smesso di funzionare dopo l'aggiornamento del firmware
- 24. Ingresso e uscita audio immediato Android
- 25. Errore iniziale mediarecording Android non riuscito -19 runTimeException
- 26. E 'possibile in Android registrare la chiamata durante le chiamate in entrata o in uscita
- 27. Errore del server della fotocamera Android e telecamera - 100
- 28. android mediaRecorder.setAudioSource fallito
- 29. Android backbutton e schede Android
- 30. mediarecoder Android salva il file vuoto