2010-03-10 24 views
7

Tôi đang thử nghiệm ghi và phát lại âm thanh của Android. Có cách nào để liệt kê các thông số âm thanh có sẵn trên thiết bị của tôi không?Làm cách nào để xác định khả năng âm thanh trên Android?

Ngay bây giờ, khi tôi chuyển một kết hợp các thông số mà phần cứng (hoặc trình giả lập) không thích, tôi chỉ gặp lỗi. Vì vậy, tôi phải "đoán":

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) { 
    ... 

Chắc chắn có cách tốt hơn!


This chart chỉ ra rằng chỉ tỷ lệ lấy mẫu đầu vào âm thanh được hỗ trợ là 8 kHz? Đúng không?

Trả lời

5
+0

Xin chào Marc - vâng, tôi đã nhìn thấy điều đó và đó là một phần của trò chơi, nhưng tôi hy vọng một cái gì đó toàn diện hơn (và bao gồm các cài đặt đầu vào quá). – Seth

+0

Rất tiếc. Có vẻ như vòng lặp thông qua các tham số có thể là cách duy nhất có thể hiện tại. Xem http://bit.ly/c3BieY để biết thêm về công việc của nhà phát triển khác về vấn đề này. Tôi đồng ý điều này không phải là rất tối ưu, một hàm getCapabilities() sẽ là tốt đẹp để có. –

Các vấn đề liên quan