使用 SoundCloud Developers 页面中的以下代码示例,AVAudioPlayer 将在收到 SCRequest 响应后开始播放。根据请求文件的大小,这可能需要一些时间。
iOS SoundCloud API 是否提供预缓冲解决方案,以便可以在收到所有数据之前开始播放音频,或者我是否需要在 NSURLConnection 的帮助下实现自己的解决方案才能实现这一点?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *track = [self.tracks objectAtIndex:indexPath.row];
NSString *streamURL = [track objectForKey:@"stream_url"];
SCAccount *account = [SCSoundCloud account];
[SCRequest performMethod:SCRequestMethodGET
onResource:[NSURL URLWithString:streamURL]
usingParameters:nil
withAccount:account
sendingProgressHandler:nil
responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSError *playerError;
player = [[AVAudioPlayer alloc] initWithData:data error:&playerError];
[player prepareToPlay];
[player play];
}];
}