2013-03-21 4 views
6

付属のクイックスタートガイドを使用して、IOSアプリケーション内でSoundCloudトラックを再生したいとします。IOSアプリケーションでSoundCloudファイルを再生する

ストリームを再生するために提供されたコードはここにある:

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

問題:最初に、あなたのSoundCloudがアカウントにログインせずにSoundCloudがファイルを再生する方法はありますか?すべてのユーザーがSoundCloudの使用を検討することを願っていますが、新しいユーザーが以前にいくつかの曲を聴くことができれば便利だと考えていました。

あなたの要求文字列にパラメータとしててSoundcloudクライアントIDを追加する必要がありますIOSてSoundcloud SDKとパブリックアクセスのために
+0

は、そのアカウントの初期化を担当するコードを省略しようとしていますか?あなたは特に問題がありますか? –

+1

はい、アカウントを設定しようとしました:nil、そうしないと、サウンドを再生するためにSoundCloudにログインする必要があると仮定します。 – Magnus

+0

マグヌス、私はこれが遅いと知っていますが、私は同じ問題を抱えています...あなたは回避策を見つけましたか? – gg13

答えて

14

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){ 
         // 
     }]; 

withAccountとき、それは公共のトラックのために動作します:パラメータがnilです。

よりエレガントに、あなたにも辞書に「CLIENT_ID」をパックし、usingParametersでそれを使用することができます。

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

+1

私の答えに正しいとフラグを立てることができます。ありがとうございます –

+0

これは私のために働いた。完璧な答え。 –

+0

@ sn-gerzonic 'NSOSStatusErrorDomain Code = 1954115647"操作を完了できませんでした。(OSStatusエラー1954115647.) '私はこのエラーを受け取りましたplsは私に解決策を与えます –

関連する問題