我正在尝试在Android上集成libspotify
。看起来我从android获得的原始PCM数据与我在ubuntu上获得的原始PCM。
出于测试目的,我尝试存储PCM文件,并使用大胆的方式播放它。在Ubuntu中,它是完美的,但在Android中,它的运行是断断续续和缓慢的。
我试着打印数据的前10个int16_t,它看起来完全不同:
安卓系统-457 463 62 635 492 742 968 246 909 179
Ubuntu-944 960 128 1318 1020 1538 2008 510 1885 353
粗略分析显示,每个int16_t值都是我在Android中得到的值的2.7倍。
我的问题是如何获得相同的PCM数据,我在Ubuntu在Android中也获得。
您永远无法保证拥有相同的PCM数据,尤其是跨平台。
-
libspotify可能使用不同的比特率设置。有时,如果它缓存了高质量的版本,即使比特率设置较低,它也可能使用该版本。
-
出于性能原因,libspotify跨平台使用不同的解码器。
-
libspotify可能正在对音频进行规范化,出于性能原因,规范化仅在某些平台上可用。
如果您需要在会话之间进行精确的PCM匹配,libspotify不是您的解决方案——它是作为消费者音乐服务而非专业音频提供商设计的。