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

如何用Spotify-iOS SDK将播放曲目保存至用户Your Music库?含代码问题

实现Spotify曲目保存到Your Music的IBAction方案

我来帮你补全并优化这个保存曲目到Your Music的IBAction代码,顺便理清楚整个流程的关键点,避免踩坑:

完整的IBAction代码

- (IBAction)saveTrackToMyMusic:(id)sender {
    // 1. 通过曲目URI获取SPTTrack实例
    [SPTTrack trackWithURI:[NSURL URLWithString:self.spotifyUrl] 
              accessToken:self.session.accessToken 
                   market:nil 
                  callback:^(NSError *error, SPTTrack *track) {
        // 处理获取曲目信息的错误
        if (error) {
            NSLog(@"获取曲目详情失败:%@", error.localizedDescription);
            // 这里可以给用户弹个提示框告知失败
            return;
        }
        
        // 2. 获取当前登录用户的信息
        [SPTUser requestCurrentUserWithAccessToken:self.session.accessToken 
                                          callback:^(NSError *error, SPTUser *currentUser) {
            if (error) {
                NSLog(@"获取当前用户信息失败:%@", error.localizedDescription);
                return;
            }
            
            // 3. 核心步骤:把曲目添加到用户的Your Music库
            [SPTYourMusic addTracks:@[track.uri] 
                          toLibraryForUser:currentUser 
                          accessToken:self.session.accessToken 
                          callback:^(NSError *error) {
                if (error) {
                    NSLog(@"保存曲目失败:%@", error.localizedDescription);
                } else {
                    NSLog(@"曲目已成功存入Your Music!");
                    // 只有保存成功后,再更新本地的tracksArray,保证数据一致性
                    [self.tracksArray addObject:track];
                    // 如果用列表展示曲目,记得刷新UI
                    [self.tableView reloadData];
                }
            }];
        }];
    }];
}

关键注意事项

  • 错误处理不能少:每个异步回调都加了错误判断,避免因网络问题、token过期等情况导致崩溃或无反馈
  • 数据一致性:只有当云端保存成功后,再把track加到本地的tracksArray里,不然本地显示已保存但实际云端没存上,会造成用户困惑
  • URI格式要正确:self.spotifyUrl必须是标准的Spotify曲目URI,格式类似 spotify:track:123456789abc,不能是网页链接
  • 权限检查:确保你的Spotify开发者应用已经申请了user-library-modify权限,不然会保存失败

另外,别忘了导入Spotify的头文件:

#import <SpotifyiOS/SpotifyiOS.h>

内容的提问来源于stack exchange,提问作者Austin Berenyi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:53:58