如何从android上的FM广播源获取pcm?(How to get pcm from fm radio source on android?)
我尝试以FM格式从fm无线电源获取原始数据。 我这样做:
int bufSize = AudioRecord.getMinBufferSize(SAMPLE_RATE_16kHz, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT); mRecorder = new AudioRecord(AudioSource.FM_RX, SAMPLE_RATE_16kHz, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufSize); mBuffer = new short[bufSize / 2]; mRecorder.startRecording();当我打电话给一个循环:
int ret = mRecorder.read(mBuffer, 0, mBuffer.length);ret中的值为0,缓冲区为空。 但是,如果我将AudioSource.FM_RX更改为AudioSource.MIC,我可以从麦克风获取数据。 我做错了什么?
I try to get raw data in PCM format form fm radio source. I do this:
int bufSize = AudioRecord.getMinBufferSize(SAMPLE_RATE_16kHz, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT); mRecorder = new AudioRecord(AudioSource.FM_RX, SAMPLE_RATE_16kHz, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufSize); mBuffer = new short[bufSize / 2]; mRecorder.startRecording();and when I call in a loop:
int ret = mRecorder.read(mBuffer, 0, mBuffer.length);the value in ret is 0 and buffer is empty. But if I change AudioSource.FM_RX to AudioSource.MIC I can get data form microphone. What I do wrong?
最满意答案
AudioSource.FM_RX可能通过CyanogenMod提供,但不能在标准API中使用( 参见例如此问题 )。
AudioSource.FM_RX might be available via CyanogenMod but not in the standard API (see e.g. this question).
更多推荐
发布评论