CustomSD 服务无法播放曲目
Posted
技术标签:
【中文标题】CustomSD 服务无法播放曲目【英文标题】:CustomSD service not able to play tracks 【发布时间】:2021-09-13 19:50:51 【问题描述】:我目前正在开发一项音乐服务并通过 customd 对其进行测试。控制器应用程序中的集成正在运行(ios 应用程序和 Windows 桌面应用程序) - 所以我可以浏览 - 但我无法让播放器播放任何曲目。一旦我点击控制器中的“播放”按钮,我就会不断收到“无法连接”错误。我可以在服务端看到 Player 发送一个 getMetadata 和一个 getMediaURI 请求,并且该服务提供的 SOAP 响应与来自另一个来源的工作示例相同;但是,播放器似乎无法处理它们。我有点卡住了,我想对我有帮助的是播放器日志。有没有办法得到它们? 或者,是否有人对问题的根本原因有任何其他想法?
编辑:或多或少偶然,我遇到了问题的原因。虽然一般来说,Sonos 可以处理任意 ID,但 getMediaURI 似乎仅在它请求 URI 以获取 track:something 形式的 ID 时才有效。我不记得在开发者页面上看到这是一项要求。
不管怎样,现在开始工作了。
【问题讨论】:
【参考方案1】:如果您收到getMediaURI
请求并以有效响应对其进行响应,则播放器很可能无法处理媒体文件本身。您是否看到正在下载的媒体文件?您可以在本地托管媒体文件,并在 getMediaURI
响应中包含该 URI 以进行检查。
请注意,元数据中包含的<mimeType>
用于告知播放器getMediaURL
响应中的URI 指向的媒体类型。
因此,如果您要为 track123 返回 <mimeType>audio/ogg</mimeType>
,但 getMediaURI
的响应包含 URI https://something.xyz/track123.mp3
,则播放可能会由于不匹配而失败。
【讨论】:
【参考方案2】:你见过bonob吗?有人为 navidrome(自托管音乐库,la spotify)制作了一个音乐服务模拟器。它应该是帮助您入门的绝佳资源。
他写道,您的音乐服务必须在 https 上可用才能开始运行。
注意,我是sonos-ts 的开发人员,这是一个从 typescript 和 node 控制 sonos 扬声器的库。并记录了外部音乐服务here
【讨论】:
以上是关于CustomSD 服务无法播放曲目的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 kaaes Spotify web api 获取播放列表的曲目