Android上的LibSpotify是否以不同于Linux的格式提供PCM

时间:2013-12-16 15:21:15

标签: android spotify libspotify

我正在尝试在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数据。

1 个答案:

答案 0 :(得分:1)

您永远无法保证相同的PCM数据,特别是跨平台。

  • libspotify可能正在使用不同的比特率设置。有时,如果它具有高质量版本的缓存,即使比特率设置较低,它也可能会使用它。

  • 出于性能原因,libspotify在不同平台上使用不同的解码器。

  • libspotify可能正在对音频执行规范化,并且出于性能原因,规范化仅在某些平台上可用。

如果您需要跨会话进行精确的PCM匹配,则libspotify不适合您 - 它被设计为消费者音乐服务而非专业音频提供商。