如何从 android 上的调频广播源获取 pcm?

Posted

技术标签:

【中文标题】如何从 android 上的调频广播源获取 pcm?【英文标题】:How to get pcm from fm radio source on android? 【发布时间】:2014-02-11 07:07:07 【问题描述】:

我尝试从调频广播源中获取 PCM 格式的原始数据。我这样做:

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,我可以从麦克风获取数据。我做错了什么?

【问题讨论】:

【参考方案1】:

AudioSource.FM_RX 可能通过 CyanogenMod 提供,但不在标准 API (see e.g. this question) 中。

【讨论】:

以上是关于如何从 android 上的调频广播源获取 pcm?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 RSS 源获取全文:Android 和 IOS

使用 boost::asio 获取广播源 IP 地址

如何使用 FFT 从 PCM 获取频率数据

如何从 iOS 上的 AudioQueue 服务获取样本

从安卓设备通过蓝牙广播消息

如何使用 java 从 pcm 字节数组 .wav 文件中获取频率和音高?