2014-01-17 23 views
4

我想使用Soundcloud API在我的应用程序中播放公共声音。在网络搜索后,我找到了一种方法来做到这一点,但我无法让我的代码工作。下面是我试图播放声音的代码:Soundcloud iOS API - 播放链接中的声音

NSString *publicTrackUrlString = @"https://soundcloud.com/miroslav-osipovic/the-cat-empire-the-lost-song"; 
NSString *urlString = [NSString stringWithFormat:@"%@?client_id=64a52bb31abd2ec73f8adda86358cfbf", publicTrackUrlString]; 
[SCRequest performMethod:SCRequestMethodGET 
       onResource:[NSURL URLWithString:urlString] 
     usingParameters:nil 
      withAccount:nil 
    sendingProgressHandler:nil 
     responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
      NSError *playerError; 
      player = [[AVAudioPlayer alloc] initWithData:data error:&playerError]; 
      [player prepareToPlay]; 
      [player play]; 
     }]; 

回答

17
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]; 

您可以从解决资源获取的轨道ID:http://api.soundcloud.com/resolve.json?url=http://soundcloud.com/miroslav-osipovic/the-cat-empire-the-lost-song&client_id=YOUR_CLIENT_ID

+0

谢谢你,真的很有帮助。 –