2013-08-15 17 views
7

Ich kann die Songs in der Tabellenansicht anzeigen, aber ich kann sie nicht abspielen.Sounds von stream_url nicht abspielen SoundCloud API

hier ist mein Code, wenn get Tracks Taste

abgegriffen
- (IBAction) getTracks:(id) sender 
{ 

    SCRequestResponseHandler handler; 
    handler = ^(NSURLResponse *response, NSData *data, NSError *error) { 
     NSError *jsonError = nil; 
     NSJSONSerialization *jsonResponse = [NSJSONSerialization 
              JSONObjectWithData:data 
              options:0 
              error:&jsonError]; 
     if (!jsonError && [jsonResponse isKindOfClass:[NSArray class]]) { 
      SCTTrackListViewController *trackListVC; 
      trackListVC = [[SCTTrackListViewController alloc] 
          initWithNibName:@"SCTTrackListViewController" 
          bundle:nil]; 
      trackListVC.tracks = (NSArray *)jsonResponse; 
      NSLog(@"json %@",(NSArray *)jsonResponse); 
      [self presentViewController:trackListVC 
           animated:YES completion:nil]; 
     } 
    }; 



    NSString *resourceURL = @"https://api.soundcloud.com/users/54237635/tracks.json?client_id=8a58d84d48322f5661cf14a3d80e005d"; 


    [SCRequest performMethod:SCRequestMethodGET 
        onResource:[NSURL URLWithString:resourceURL] 
      usingParameters:nil 
       withAccount:nil 
     sendingProgressHandler:nil 
      responseHandler:handler]; 
} 

hier ist mein Code in didselect in Tableview:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    NSDictionary *track = [self.tracks objectAtIndex:indexPath.row]; 
    NSString *streamURL = [track objectForKey:@"stream_url"]; 


    [SCRequest performMethod:SCRequestMethodGET 
        onResource:[NSURL URLWithString:streamURL] 
      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]; 
      }]; 

    NSLog(@"streamURL %@", [track objectForKey:@"stream_url"]); 
} 
+0

Was Sie gelernt haben, über die Handhabung der Antwort von der Verwendung des Debuggers? Bitte teilen Sie diese Informationen. –

+0

was meinst du? Weißt du, was das Problem mit dem Code ist? – user1808336

+0

Nein, ich möchte Sie bitten, weitere Details zu dem, was Sie beim Debuggen gefunden haben, zu teilen. Stößt der Antwort-Handler zum Beispiel? Was sind die Werte seiner Argumente? und so weiter –

Antwort

0

vom OP Gelöst:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *) 
{ 

NSDictionary *track = [self.tracks objectAtIndex:indexPath.row]; 
    NSString *streamURL = [track objectForKey:@"stream_url"]; 

NSString *urlString = [NSString stringWithFormat:@"%@?client_id=%@", streamURL,CLIENT_ID];//Your client ID 


[SCRequest performMethod:SCRequestMethodGET 
       onResource:[NSURL URLWithString:urlString] 
     usingParameters:nil 
      withAccount:nil 
    sendingProgressHandler:nil 
     responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
      NSError *playerError; 

      NSLog(@"data:%@",data); 
      player = [[AVAudioPlayer alloc] initWithData:data error:&playerError]; 
      [player prepareToPlay]; 
      [player play]; 
     }]; 
}