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

React版Spotify应用获取preview_url为曲目添加预览样例问题求解

问题根因

  • spotify.js文件的搜索结果处理逻辑中,未提取Spotify API返回的preview_url字段
  • Track.js组件内使用的字段名previewSample和实际映射的字段不匹配,且audio标签未添加播放控制属性,用户无法触发播放
  • 未处理部分曲目无预览资源的边界情况,可能引发渲染异常

具体修改方案

1. 修改spotify.js的搜索结果映射逻辑

找到search方法内的data.tracks.items.map部分,新增预览链接字段映射:

return data.tracks.items.map(track => ({
    id: track.id,
    name: track.name,
    artist:track.artists[0].name,
    album: track.album.name,
    uri:track.uri,
    // 新增此行,提取预览链接,无资源时默认返回空字符串
    previewSample: track.preview_url || ''
}))

2. 修改Track.js的音频播放组件

给audio标签添加controls播放控制属性,同时增加空值判断处理无资源的情况:

render () {
    return (
        <div className="Track">
            <div className="Track-information">
              <h3> {this.props.track.name} </h3>
              <p> {this.props.track.artist}  | {this.props.track.album}</p>
              {/* 修改音频渲染逻辑 */}
              {this.props.track.previewSample ? (
                <audio controls>
                  <source src={this.props.track.previewSample} type="audio/mpeg" />
                  您的浏览器不支持音频播放
                </audio>
              ) : (
                <p className="no-preview">暂无试听资源</p>
              )}
            </div>
           {this.renderAction()}
        </div>
    )
}

注:部分受版权、地区限制的曲目本身不存在预览链接,属于Spotify API的正常返回情况,无需额外调整代码。

内容的提问来源于stack exchange,提问作者Borhen Kalboussi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:09:01