2012-04-02 7 views
0

ich eine Android-Anwendung zu entwickeln, die mich Klang mit Mediarecorder Klasse Das folgende ist ein Teil von meinem Code aufzeichnet:Thick langsam aufgenommener Ton android-Recorder

public void start() throws IOException { 
    String state = android.os.Environment.getExternalStorageState(); 
    if(!state.equals(android.os.Environment.MEDIA_MOUNTED)) { 
     throw new IOException("SD Card is not mounted. It is " + state + "."); 
    } 

    // make sure the directory we plan to store the recording in exists 
    File directory = new File(path).getParentFile(); 
    if (!directory.exists() && !directory.mkdirs()) { 
     throw new IOException("Path to file could not be created."); 
    } 
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recorder.setAudioEncodingBitRate(16); 
recorder.setAudioSamplingRate(44100); 
try { 
    recorder.setOutputFile(path); 
} catch (IllegalStateException e) { 
    e.printStackTrace(); 
} 
recorder.prepare(); 
recorder.start(); 


} 

, wenn der Recorder stoppt, ich spielte es mit Mediaplayer Klasse, aber das Ergebnis Sound ist sehr dick und langsam .. Was könnte das Problem sein?

Antwort

0

Wie beim MediaRecorder documentation ist die Abtastrate für AMRNB 8kHz und Sie setzen dies auf einen anderen Wert. Ich vermute das als das Problem.

Können Sie diese Zeilen kommentieren und prüfen, ob das für Sie arbeitet:

//recorder.setAudioEncodingBitRate(16); 
//recorder.setAudioSamplingRate(44100); 
+0

nein Ich habe versucht, diese zu kommentieren und versuchte es auf reales Gerät .. aber das gleiche Problem – Developer

+0

Was ist das Gerät, das Sie verwenden? – Deva

+0

ist es Samsung 2.1 – Developer