繁体   English   中英

iOS / Soundcloud API-在没有stream_url请求的情况下从Soundcloud API下载曲目

[英]iOS / Soundcloud API - Downloading track from Soundcloud API without stream_url request

我的iOS应用程序的一部分是借助其API播放从Soundcloud下载的歌曲。 但是,歌曲将完全下载然后播放,而不是流式传输。 当使用stream_url发送GET请求时,该请求需要非常长的时间才能加载到AVAudioPlayer中(我想是因为一个小时以上的轨道上的上限为128kb / s),并且使用download_url的请求不起作用,最有可能是因为将曲目下载设置为只能通过Facebook Band页面访问。

我很好奇,是否有一种更快的方式下载了取消这两个选项的曲目。 否则,有一种方法可以在歌曲的其余部分加载到播放器中时开始播放歌曲。 例如,我可以将曲目的前5分钟加载到临时播放器中,然后在其他播放器完全加载时将其接管播放吗? 正在访问的Soundcloud曲目全部来自一个朋友,因此如有必要,我可以请他更改帐户选项。

我在这里找到了一个很好的答案,可以加快使用AVPlayer的播放速度。

Soundcloud iOS API-从链接播放声音

我已经尝试过了,响应真的很好!

代码是:

NSString *trackID = @"100026228";
NSString *clientID = @"YOUR_CLIENT_ID";
NSURL *trackURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://api.soundcloud.com/tracks/%@/stream?client_id=%@", trackID, clientID]];

NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithURL:trackURL completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    // self.player is strong property
    self.player = [[AVAudioPlayer alloc] initWithData:data error:nil];
    [self.player play];
}];

[task resume];

您需要使用流技术而不是AVAudioPlayer。 您可以使用AudioStreamer允许在加载时播放音频。 这解决了我的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM