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

如何在Safari的Now Playing小组件中设置播放歌曲的封面?

解决Safari Now Playing组件封面不显示问题

针对你的代码和环境,以下是几个关键修复点:

  • 修正拼写错误
    代码中cover对象的属性sies是拼写错误,正确应为sizes,这个笔误会导致浏览器无法识别图片尺寸配置:

    // 错误写法
    var cover = { src: coverPath, sies: "256x256", type: "image/jpeg" }
    // 正确写法
    var cover = { src: coverPath, sizes: "256x256", type: "image/jpeg" }
    
  • 必须将Metadata绑定到mediaSession
    你的代码仅创建了MediaMetadata对象,但没有将其赋值给navigator.mediaSession,这是封面不显示的核心原因,需要添加赋值代码:

    var metadata = new MediaMetadata({
      title: trackInfo["name"],
      artist: trackInfo["artists"],
      album: trackInfo["album"],
      artwork: [ cover ]
    });
    // 新增这行关键代码
    navigator.mediaSession.metadata = metadata;
    
  • 检查图片跨域权限
    如果coverPath指向其他域名的图片,需确保该图片服务器配置了正确的CORS响应头(允许当前音乐网站域名访问)。可打开Safari开发者工具控制台,查看是否存在跨域加载错误。

  • 优化图片尺寸与格式配置
    Safari对artwork的兼容性要求更严格,建议提供多种尺寸的图片(至少包含144x144和256x256),且使用具体图片类型(如image/jpeg)而非通配符image/*:

    artwork: [
      { src: coverPath.replace("400x400", "144x144"), sizes: "144x144", type: "image/jpeg" },
      { src: coverPath.replace("400x400", "256x256"), sizes: "256x256", type: "image/jpeg" },
      { src: coverPath, sizes: "400x400", type: "image/jpeg" }
    ]
    
  • 验证coverPath有效性
    确保coverPath是完整的绝对URL,或相对路径能被当前页面正确解析。可在控制台打印coverPath,直接访问链接确认图片能正常加载。


内容的提问来源于stack exchange,提问作者Nikolai Nagornyi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:55:18