我正在尝试在Android上集成libspotify
。看起来我从android获得的原始PCM数据与我在ubuntu上获得的原始PCM不同。
出于测试目的,我尝试存储PCM文件并使用audacity播放它。在Ubuntu中它是完美的,但在Android中,这个游戏很不稳定且很慢。
我尝试打印前10个int16_t数据,看起来完全不同:
Android - -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倍。
我的问题是如何获得我在Android中的Ubuntu中获得的相同PCM数据。
答案 0 :(得分:1)
您永远无法保证相同的PCM数据,特别是跨平台。
libspotify可能正在使用不同的比特率设置。有时,如果它具有高质量版本的缓存,即使比特率设置较低,它也可能会使用它。
出于性能原因,libspotify在不同平台上使用不同的解码器。
libspotify可能正在对音频执行规范化,并且出于性能原因,规范化仅在某些平台上可用。
如果您需要跨会话进行精确的PCM匹配,则libspotify不适合您 - 它被设计为消费者音乐服务而非专业音频提供商。