1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. sowatt, 23.05.2011 #1
    sowatt

    sowatt Threadstarter Neuer Benutzer

    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();
        }
    }
     

    Anhänge:

  2. sowatt, 24.05.2011 #2
    sowatt

    sowatt Threadstarter Neuer Benutzer

    niemand?
     
  3. DieGoldeneMitte, 24.05.2011 #3
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

  4. sowatt, 24.05.2011 #4
    sowatt

    sowatt Threadstarter Neuer Benutzer

    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.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Daten/Code meiner App speichern? Android App Entwicklung 27.07.2017
[GESCHLOSSEN] Kennt jemand ein Programm , um .DEX Dateien zu öffnen, bearbeiten und wieder speichern? Android App Entwicklung 20.07.2017
[OFFEN] Probleme in den Speicher schreiben Android App Entwicklung 13.07.2017
[ERLEDIGT] (JSON-)Datei speichern Android App Entwicklung 08.04.2017
Wie speichere ich dauerhaft Daten unter Android ? Android App Entwicklung 06.02.2017
Uri oder File path als String speichern zum wiederauslesen Android App Entwicklung 26.01.2017
Farben ändern und permanent speichern Android App Entwicklung 19.01.2017
Speichern von Server-Verbindungsdaten (Benutzereingabe) Android App Entwicklung 12.01.2017
Speichern auf SD-Card Android App Entwicklung 02.12.2016
Zugriff auf Handy Speicher (bspw. Videos) Android App Entwicklung 28.11.2016
Du betrachtest das Thema "Audiodaten aus short-Array als (unkomprimierte) Audiodatei speichern" im Forum "Android App Entwicklung",