通过 Spotify iOS SDK 获取用于可视化的 pcm 音频
Posted
技术标签:
【中文标题】通过 Spotify iOS SDK 获取用于可视化的 pcm 音频【英文标题】:getting pcm audio for visualization via Spotify iOS SDK 【发布时间】:2014-10-13 05:22:10 【问题描述】:我们目前正在考虑将我们已经存在多年的音乐可视化软件引入一个通过新的 ios Spotify SDK 播放音乐的 iOS 应用程序——请查看http://soundspectrum.com 以查看我们的视觉效果,例如 G-Force 和永旺。
无论如何,我们已经启动并运行了 Spotify iOS SDK 中的演示项目,一切看起来都不错,但向前迈出的主要一步是访问音频 pcm,以便我们可以将其发送到我们的视觉引擎等。
Spotify 开发人员或知情人士能否建议有哪些方法可以获取 pcm 音频?音频 pcm 块可以像几千个最新样本的循环缓冲区一样简单(我们将用于 FFT 等)。
提前致谢!
【问题讨论】:
你的链接没有去任何地方。 哎呀,修正了那个错字 【参考方案1】:子类 SPTCoreAudioController
并做以下两件事之一:
覆盖connectOutputBus:ofNode:toInputBus:ofNode:inGraph:error:
并使用AudioUnitAddRenderNotify()
将渲染回调添加到destinationNode
的音频单元。回调将在输出节点被渲染时被调用,并让您在音频离开扬声器时访问它。完成此操作后,请确保调用 super
的实现以使 Spotify iOS SDK 的音频管道正常工作。
覆盖attemptToDeliverAudioFrames:ofCount:streamDescription:
。这使您可以访问库生成的 PCM 数据。但是,默认管道中正在进行一些缓冲,因此此回调中给出的数据可能比扬声器输出的数据晚半秒,因此我建议在此基础上使用建议 1。在此处调用 super
以继续使用默认管道。
一旦你有了你的自定义音频控制器,用它初始化一个SPTAudioStreamingController
,你应该很高兴。
我实际上使用建议 1 在我的 Mac OS X Spotify 客户端中实现 iTunes 的可视化 API,该客户端是使用 CocoaLibSpotify 构建的。它不是 100% 顺利运行(我认为我在运行循环和其他东西方面做错了),但它很好地推动了 G-Force 和 Whitecap。你可以找到项目here,可视化工具在VivaCoreAudioController.m。 CocoaLibSpotify 和该项目中的音频控制器类与新 iOS SDK 中的基本相同。
【讨论】:
太棒了,iken,谢谢!我们很高兴将我们的东西带到 iOS 并支持 Spotify ——我现在期待与您分享我们的进展!请在 Skype 上以 andyomeara 的身份找到我,以了解更多信息。 :) 丹尼尔!我们的应用程序的工作仍在继续,我们期待将其发布给所有人享受!如果有空请看一下,谢谢!! ***.com/questions/26853839/… 你好!查看应用商店中的 Tunr,了解 Spotify iOS SDK 的出色工作! itunes.apple.com/us/app/tunr/id948831179?mt=8以上是关于通过 Spotify iOS SDK 获取用于可视化的 pcm 音频的主要内容,如果未能解决你的问题,请参考以下文章
使用 iOS Spotify SDK 在给定的开始时间启动 Spotify 曲目播放?