2013-08-15 7 views
7

Mogę wyświetlić utwory w widoku tabeli, ale nie mogę tego odtworzyć.Nie odtwarza dźwięków z stream_url ing SoundCloud API

oto mój kod kiedy get tory przycisk spuszcza

- (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]; 
} 

oto mój kod w didselect w 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

Czego się nauczyłeś o obsłudze odpowiedzi z używania debuggera? Udostępnij te informacje. –

+0

co masz na myśli? czy wiesz, jaki jest problem z kodem? – user1808336

+0

Nie, proszę o udostępnienie więcej informacji o tym, co znalazłeś podczas debugowania. Czy na przykład uruchamia się moduł obsługi odpowiedzi? Jakie są wartości jej argumentów? i tak na –

Odpowiedz

0

rozwiązywane przez OP:

- (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]; 
     }]; 
} 
Powiązane problemy