用途:这是 ShazamKit 框架的 API 参考,用于在 Apple 平台实现音频识别,可对 Shazam 音乐目录或自定义音频目录进行匹配,涵盖匹配、签名生成、目录管理与资料库集成。支持 iOS 15+、iPadOS 15+、macOS 12+、tvOS 15+、watchOS 8+、visionOS 1+。
主要能力:SHManagedSession(iOS 17+)自动处理录音与匹配,提供 result()、results、prepare()、cancel() 与 Observable 状态;SHSession(iOS 15+)为底层会话,支持 match(_ signature:) 与 matchStreamingBuffer(_:at:),并有委托与 AsyncSequence。SHSignatureGenerator 可从 AVAudioPCMBuffer 或 AVAsset 生成签名;SHCustomCatalog 可添加参考签名并读写 .shazamcatalog 文件;SHLibrary(iOS 17+)可添加、读取、删除同步的 Shazam 资料库条目;另有 SHMediaItem、SHMatchedMediaItem、SHError 等类型与自定义属性扩展。
使用方式:按快速参考选择 API,如识别歌曲用 SHManagedSession().result(),连续识别用 for await result in session.results,自定义匹配用 SHManagedSession(catalog: custom),签名文件匹配用 SHSession().match(signature)。也可用 Shazam CLI(macOS 13+)批量生成签名与目录,例如 shazam signature --input <media-file> --output <signature-file>。
适用场景:歌曲识别、自定义音频内容同步、流式音频匹配、资料库写入与同步。限制:SHMediaLibrary 为旧版只写接口;SHLibrary 中各应用仅能读写自己添加的条目;自定义属性值须为有效属性列表类型;部分 API 有系统版本要求。