代码之家  ›  专栏  ›  技术社区  ›  Mauro Bilotti

如何播放PCM-24音频?

  •  1
  • Mauro Bilotti  · 技术社区  · 7 年前

    我正在写我的工程论文,这篇论文是关于电子测谎仪的。音频由I2S麦克风拍摄( Adafruit SPH0645 ),其输出包含每个样本上18位有效数据。因此,我决定使用一种PCM-24格式,并且通过使用.NET库naudio来播放和查看图形(心音图)

    我一直在研究Android提供的AudioTrack作为播放PCM文件的本机库,但它似乎只支持PCM-8、PCM-16和PCM float,据我所知,它们需要更高的API级别。

    我找不到任何其他能帮助我完成这项任务的库,但是看起来很奇怪,因为PCM-24是另一个常用的标准。 有没有办法在Android中播放PCM-24音频 ?

    另一方面,如果没有办法做到这一点, 在不需要处理和填充值的情况下,减少到PCM-16或增加到PCM-32-FP时,我应该考虑哪些问题? )其输出由每个样本上的18位有效数据组成。正因为如此,我决定使用PCM-24格式,并且我能够使用.NET库来播放和查看图形(心音图) NAudio

    该项目的范围必须主要考虑Android的移动设备,这些设备必须通过硬件(服务器)创建的TCP套接字连接,硬件(服务器)通过TCP套接字以PCM-24格式连续传输音频。下图将阐明所暴露的功能:

    auriculares: headphones|conexión inalámbrica: wireless connection

    我一直在研究Android提供的 AudioTrack

    我找不到任何其他能帮助我完成这项任务的库,但是看起来很奇怪,因为PCM-24是另一个常用的标准。 有没有办法在Android中播放PCM-24音频

    另一方面,如果没有办法, 尽管需要处理和填充值,但在减少到PCM-16或增加到PCM-32-FP时,我应该考虑哪些问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Eddie Lopez    7 年前

    我觉得你走对了。如你所见 https://source.android.com/devices/audio/data_formats Android在内部支持多种格式,但只公开了一个子集,可能是为了兼容;请参见此处: https://developer.android.com/guide/topics/media/media-formats .

    如你所提议,我将转换成16位PCM。与传感器的频率响应和分辨率相比,心跳或脉搏是一个缓慢的过程,因此您将安全,不会丢失任何用于播放声音或显示超声心动图的信息。

    对于数据的任何进一步处理,如检测心律失常或类似的情况,请使用原始的24位采样。祝你好运!