我正在研究我的工程论文,该论文由电子美容镜组成。音频是通过I2S麦克风(Adafruit SPH0645)拍摄的,该麦克风的输出由每个样本上的18位有效数据组成。因此,我决定使用PCM-24格式,并且能够使用.NET库NAudio来播放和查看图形(心电图)。
该项目的范围必须主要考虑具有Android的移动设备,并且这些设备必须通过由硬件(服务器)创建的TCP套接字进行连接,在该套接字上连续不断地传输PCM-24格式的音频。下图将阐明所公开的功能:
我一直在研究Android提供AudioTrack作为播放PCM文件的本机库,但似乎只支持PCM-8,PCM-16和PCM-float,据我所知更高的API级别。
我找不到其他可以帮助我完成此任务的库,但由于PCM-24是另一个常用的标准,因此似乎很奇怪。 有什么方法可以在Android中播放PCM-24音频?
另一方面,如果没有办法,尽管有必要的处理和填充值,我在减少到PCM-16或增加到PCM-32-FP时应该考虑哪些问题?< / strong>
答案 0 :(得分:1)
我认为您在正确的道路上。正如您在此处看到的https://source.android.com/devices/audio/data_formats一样,Android内部支持多种格式,但仅公开了一部分,可能是出于兼容性考虑。参见此处:https://developer.android.com/guide/topics/media/media-formats。
按照您的建议,我将转换为16位PCM。与传感器的频率响应和分辨率相比,心跳或脉搏是一个缓慢的过程,因此,在播放声音或显示超声心动图的过程中,您将安全且不会丢失任何信息。
在转换为16位时要小心,确保PCM24不会对单词使用任何奇怪的定位,有时是这样。除此之外,右移样本就足够了。
对于数据的任何进一步处理(如检测心律不齐等),请使用原始的基于24位的样本。祝你好运!