2010-03-10 14 views
7

Ich experimentiere mit Android Audio Aufnahme und Wiedergabe. Gibt es eine Möglichkeit, die verfügbaren Audioparameter auf meinem Gerät zu nummerieren?Wie ermittle ich Audio-Funktionen auf Android?

Gerade jetzt, wenn ich eine Kombination von Parametern, die die Hardware (oder Emulator) nicht gefällt, bekomme ich nur einen Fehler. Also muss ich "raten":

int bufferSize; 
int sampleRate; 

// does the audio hardware do 44 kHz? 
sampleRate = 44100; 
bufferSize = AudioRecord.getMinBufferSize(sampleRate, 
    AudioFormat.CHANNEL_CONFIGURATION_MONO, 
    AudioFormat.ENCODING_PCM_16BIT); 

if (bufferSize != AudioTrack.ERROR_BAD_VALUE) { 
    // Nope, how about 22 kHz? 
    sampleRate = 22050; 
} 

bufferSize = AudioRecord.getMinBufferSize(sampleRate, 
    AudioFormat.CHANNEL_CONFIGURATION_MONO, 
    AudioFormat.ENCODING_PCM_16BIT); 

if (bufferSize != AudioTrack.ERROR_BAD_VALUE) { 
    ... 

Sicherlich gibt es einen besseren Weg!


This chart anzeigt, dass die nur unterstütztes Audioeingangsabtastrate von 8 kHz ist? Ist das korrekt?

Antwort

5
+0

Hallo Marc - ja, ich habe das gesehen und es ist ein Teil des Puzzles, aber ich hoffe auf etwas umfassenderes (und enthält auch Eingabeeinstellungen). – Seth

+0

Bumm. Es scheint, als wäre das Durchlaufen der möglichen Parameter zur Zeit der einzig mögliche Weg. Siehe http://bit.ly/c3BieY für die Arbeit eines anderen Entwicklers. Ich stimme zu, das ist nicht sehr optimal, eine getCapabilities() Funktion wäre schön zu haben. –

Verwandte Themen