Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern

Das Thema "Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 23.05.2011, 01:35   #1 (permalink)
Neuer Benutzer
 
Benutzerbild von sowatt

Registriert seit: 14.04.2011
Beiträge: 9
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
Standard Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern

Ich habe mittels 'AudioRecord' einen 16bit - Audiostream vom Mic-Eingang in ein short-array ('buffer') geschrieben. Jeder Wert in diesem Array entspricht genau einem Samplewert im Bereich-32.768 ... 32.767, also dem Datenbereich des verwendeten Typs. Der Inhalt des Arrays wird in einer Textdatei abgespeichert ( 'saveToSDCard()' ).

Wie kann ich außerdem den Inhalt des Arrays am einfachsten als unkomprimierte Audiodatei abspeichern?

Danke!


Hier die relevanten Codefragmente. Das gesamte Eclipse-Projekt befindet sich im beigefügten Archiv.
Code:
int AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
int FREQUENCY = 22050; //Herz
double REC_DURATION = 5.0; // in seconds
int bufferSize = -1;    
AudioRecord audioRecord = null;
short [] buffer = null; // data sink for recording the audio stream from mic
    

void initAudio() {
        
    int minBufferSize = AudioTrack.getMinBufferSize(FREQUENCY, AudioFormat.CHANNEL_OUT_MONO, AUDIO_ENCODING);    
        
    bufferSize = (int)(REC_DURATION * 10 * minBufferSize);
        
    buffer = new short[bufferSize];
        
    // Create new AudioRecord object to record the audio. 
    audioRecord = new AudioRecord(
        MediaRecorder.AudioSource.MIC, 
        FREQUENCY, AudioFormat.CHANNEL_IN_MONO, 
        AUDIO_ENCODING, bufferSize);    
}


public void record() {
        
    try {
        audioRecord.startRecording();
        audioRecord.read(buffer, 0, bufferSize);
        audioRecord.stop();
        } catch (Throwable t) {
           Log.e(ACTIVITY_NAME,"record(): Recording Failed");
    }   
}
    

private void saveToSDCard(){

    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy.MM.dd HH.mm.ss");
    String fileName = sdf.format(new java.util.Date());
        
    try {
            
        String rootS = Environment.getExternalStorageDirectory().toString();
        File root = Environment.getExternalStorageDirectory();
            
        if (root.canWrite()){
                
               File f = new File(rootS + "/AudioClassifier", fileName + ".txt");
               FileWriter fw = new FileWriter(f);
               BufferedWriter out = new BufferedWriter(fw);
                
                for(int i = 0; i < bufferSize / 2; i++){
                    out.write("" + buffer[i] + " ");
                 }
                 out.close();
                 fw.close();
        }
    } catch (IOException e) {
            e.printStackTrace();
    }
}
Angehängte Dateien
Dateityp: zip AudioClassifier.zip (54,7 KB, 3x aufgerufen)
sowatt ist offline   Mit Zitat antworten
Alt 24.05.2011, 09:23   #2 (permalink)
Neuer Benutzer
 
Benutzerbild von sowatt

Registriert seit: 14.04.2011
Beiträge: 9
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
Standard AW: Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern

niemand?
sowatt ist offline   Mit Zitat antworten
Alt 24.05.2011, 09:57   #3 (permalink)
Android Experte
 
Benutzerbild von DieGoldeneMitte

Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
Standard AW: Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern

Wenn Du wissen willst, wie man eine WAV Datei baut, guckst Du hier: RIFF WAVE ? Wikipedia
__________________
Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon.
Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten.
Tipp: Zum "Danke" sagen gibt es einen Button.
DieGoldeneMitte ist offline   Mit Zitat antworten
Alt 24.05.2011, 10:13   #4 (permalink)
Neuer Benutzer
 
Benutzerbild von sowatt

Registriert seit: 14.04.2011
Beiträge: 9
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
Standard AW: Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern

na ja, das is mir schon klar, dass ich mir die wave-datei selber zusammenbasteln kann.

was ich aber suche ist eine möglichkeit eine solche wave-datei automatisch generieren zu lassen. nicht weil ich zu faul für die alternative wäre, sondern weil es mir so naheliegend erscheint, dass es dafür einen mechanismus geben müsste.
sowatt ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Apps als .apk speichern droiddruid Motorola Defy Forum 2 09.12.2010 11:42
Array per Zufall in zweites Array übertragen MBPower Android App Entwicklung 2 08.08.2010 13:20
2 Byte auf eine Short sk84fun Android App Entwicklung 1 07.06.2010 23:01
Mehrere TextViews in einem Array speichern Thoresus Android App Entwicklung 3 11.05.2010 21:05
JSon Array in Array Sico Android App Entwicklung 1 18.04.2010 20:02




Du liest gerade: "Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.