【问题标题】:Does the LibSpotify on android gives PCM in different format than Linuxandroid 上的 LibSpotify 是否提供与 Linux 不同格式的 PCM
【发布时间】:2013-12-16 15:21:14
【问题描述】:

我正在尝试在 Android 上集成 libspotify。看起来我从 android 获得的原始 PCM 数据与我在 ubuntu 上获得的原始 PCM 不同。

出于测试目的,我尝试存储 PCM 文件并使用 audacity 播放它。在 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 倍。

我的问题是如何获得与我在 Android 的 Ubuntu 中获得的相同的 PCM 数据。

【问题讨论】:

    标签: android spotify libspotify


    【解决方案1】:

    您永远无法保证获得相同的 PCM 数据,尤其是跨平台。

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

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

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

    如果您需要跨会话精确匹配 PCM,libspotify 不是您的解决方案 - 它被设计为消费者音乐服务而不是专业音频提供商。

    【讨论】:

    • 感谢您的回复,就比特率和格式而言,Spotify 表示它使用 16 位 LPCM LE,并且在两个通道的 44100 平台上接收到相同的比特率。我需要找到一种方法来获得正确的 PCM ,而不会出现任何不稳定或缓慢的节奏。
    • 我的意思是源材料的比特率 - 请参阅 sp_session_preferred_bitrate()。此外,libspotify 不会提供“断断续续”或“缓慢”的 PCM 数据——一旦下载了足够的数据以开始播放歌曲,数据传输就会开始,并且您获得的数据已经完全形成。如果您的声音断断续续,则问题出在其他地方 - 检查您的声音驱动程序代码。
    猜你喜欢
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多