2010-12-13 18 views
5

Tôi đang chạy Trình giả lập Android trên OS X và cố gắng sử dụng AudioRecord để lấy mẫu âm thanh và xác định tần suất bằng một bình FFT (cho ứng dụng điều chỉnh).Trình giả lập Android có thể nhận âm thanh không?

Tôi gặp khó khăn khi sử dụng điện thoại để gỡ lỗi (http://stackoverflow.com/questions/4425127/android-galaxy-s-phone-adb-debug-bridge-trouble-on-mac-osx) để Tôi muốn sử dụng trình mô phỏng.

Khi tôi lấy mẫu âm thanh từ trình giả lập, nó dường như chứa các giá trị ngẫu nhiên. Tôi cho rằng nó đang ghi âm một cái gì đó, nhưng tôi không chắc nó có đến từ micro của máy tính hay không. Ai có thể xác nhận những gì các giá trị này có thể đến từ và nếu nó có thể sử dụng giả lập để ghi lại.

Tôi khởi tạo đối tượng AudioRecord như thế này:

int frequency = 8000; 
int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO; 
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; 

try { 
     // Create a new AudioRecord object to record the audio. 
     int bufferSize = AudioRecord.getMinBufferSize(frequency,channelConfiguration,audioEncoding); 

     AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 
                frequency, channelConfiguration, 
                audioEncoding, bufferSize); 
... 

Trả lời

2

Từ các trang web dev android: "Nền tảng cũng cho phép bạn ghi lại âm thanh và video, nơi được hỗ trợ bởi phần cứng thiết bị di động Để ghi lại âm thanh hoặc video. Sử dụng lớp MediaRecorder Lưu ý rằng trình giả lập không có phần cứng để ghi lại âm thanh hoặc video, nhưng thiết bị di động thực tế có khả năng cung cấp các khả năng này, có thể truy cập thông qua lớp MediaRecorder. "

EDIT: Nó thực sự có thể có thể ghi lại âm thanh qua emul ator. Xem câu hỏi này: Can the Android emulator record and play back audio using pc hardware?

+0

Cảm ơn. Tôi đã tìm thấy điều đó, nhưng tự hỏi nó là gì? Tiếng ồn ngẫu nhiên? – chaimp

+1

có thể là nó tạo ra các giá trị ngẫu nhiên cho bạn. –

+1

Bạn có thể chụp âm thanh khi chạy mã trong trình mô phỏng. Kiểm tra này http://stackoverflow.com/q/5254994/87918 –

1

Trên OS X, tôi đã phát hiện ra rằng ghi âm với một tỷ lệ mẫu của 44100 không làm việc trong giả lập Android, nhưng một tỷ lệ mẫu của 16000 không làm việc.

+1

Wow, tôi không thể tin rằng tôi đã hỏi câu hỏi này hơn ba năm trước. Cảm ơn câu trả lời. Nó thực sự là tốt để biết cho bất cứ ai cố gắng để làm điều này. – chaimp