You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PiSignage开源服务器API切换播放列表请求超时问题求助

PiSignage播放列表切换API超时问题排查方案

问题详情

尝试通过API切换PiSignage播放列表,使用的请求:

POST {{base_url}}/api/setplaylist/{{playerId}}/{{Playlist1}}

服务器路由定义(取自routes.js):

router.post('/api/setplaylist/:playerid/:playlist', players.setPlaylist);

请求返回超时错误:

{
    "stat_message": "Request Timeout",
    "data": {
        "err": "Could not get response from the player for changing playlist, make sure player is online"
    },
    "success": true
}

已知播放器在线,其他API请求正常,仅该切换接口异常。

解决步骤

  • 校验播放列表名称与编码
    确认{{Playlist1}}是播放器上存在的精确名称,注意大小写、空格或特殊字符。若名称包含非ASCII字符(如中文、空格),需做URL编码(例如空格替换为%20),避免路由解析失败。

  • 验证服务器到播放器的网络连通性
    播放器显示在线不代表服务器能建立特定连接,在服务器上ping播放器IP,或用curl直接访问播放器本地接口(如http://[player-ip]/api/setplaylist/[playlist-name]),确认播放器能否直接响应切换请求。

  • 排查服务器与播放器日志

    • 服务器端:检查players.setPlaylist函数实现,确认是否存在同步等待超时时间过短的逻辑,查看服务器日志获取更详细的错误细节。
    • 播放器端:查看PiSignage日志目录(通常为/var/log/pisignage/),确认是否收到服务器的切换请求,是否有播放列表加载失败的记录。
  • 调整参数传递方式
    若路径传递播放列表名称存在限制,尝试改用POST请求体传递参数(如JSON格式{"playlist": "Playlist1"}),修改路由为router.post('/api/setplaylist/:playerid', players.setPlaylist)后重新测试。

  • 重启播放器服务
    播放器可能存在进程僵死情况,执行sudo systemctl restart pisignage重启核心服务,再重新发起API请求。

内容的提问来源于stack exchange,提问作者Mpumelelo Yeko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 17:42:07