2013-03-21 14 views
6

Korzystając z dostarczonego podręcznika szybkiego uruchamiania, chcesz odtwarzać ścieżkę SoundCloud w aplikacji IOS.Odtwarzanie pliku SoundCloud w aplikacji IOS

Kod warunkiem, aby odtworzyć strumień jest tutaj:

SCAccount *account = [SCSoundCloud account]; 

    [SCRequest performMethod:SCRequestMethodGET 
        onResource:[NSURL URLWithString:audioFile] 
      usingParameters:nil 
       withAccount:account 
     sendingProgressHandler:nil 
      responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
       NSError *playerError; 
       audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:&playerError]; 
       audioPlayer.numberOfLoops = 0; 

       [audioPlayer prepareToPlay]; 
       [audioPlayer play]; 
      }]; 

Problem: czy istnieje sposób, aby odtworzyć plik SoundCloud bez konieczności logowania się do swojego konta SoundCloud pierwszy? Mamy nadzieję, że wszyscy użytkownicy będą korzystać z SoundCloud - jednak jeśli chodzi o użyteczność, byłoby to przydatne, gdyby nowi użytkownicy mogli słuchać wielu utworów wcześniej.

+0

próbowałeś pominięciem kodu odpowiedzialnego za inicjalizacji konta? masz szczególny problem? –

+1

Tak Wypróbowane konto ustawień: zero, nie działało, zakładając, że musisz się zalogować do SoundCloud, aby odtwarzać dźwięk. – Magnus

+0

Magnus, wiem, że jest późno, ale mam ten sam problem ... czy znalazłeś obejście? – gg13

Odpowiedz

14

Dla publicznego dostępu z IOS Soundcloud SDK trzeba będzie dodać SoundCloud ClientID jako parametr żądanie wyrażenie:

NSString *urlString = [NSString stringWithFormat:@"%@?client_id=%@", publicTrackUrlString, yourSCClientID]; 
[SCRequest performMethod: SCRequestMethodGET 
       onResource: [NSURL URLWithString:urlString] 
     usingParameters: nil 
      withAccount: nil 
    sendingProgressHandler: nil 
     responseHandler:^(NSURLResponse *response, NSData *data, NSError *error){ 
         // 
     }]; 

Wtedy będzie pracować dla torów publicznych, gdy withAccount: parametr jest zerowa.

Bardziej elegancko, można również zapakować „CLIENT_ID” w słowniku i używać go z usingParameters:

NSDictionary *params = @{@"client_id": yourSCClientID} ;

+1

możesz oznaczyć moją odpowiedź jako poprawną. dziękuję –

+0

To zadziałało dla mnie. Doskonała odpowiedź. –

+0

@ sn-gerzonic 'NSOSStatusErrorDomain Code = 1954115647" Operacja nie mogła zostać zakończona. (Błąd OSStatus 1954115647.) 'Mam ten błąd, proszę dać mi rozwiązanie –

Powiązane problemy