简体   繁体   English

在IOS应用程序中播放SoundCloud文件

[英]Playing a SoundCloud file in IOS app

Using the quick start guide provided would like to play a SoundCloud track within IOS app. 使用提供的快速入门指南想在IOS应用程序中播放SoundCloud轨道。

The code provided to play the stream is here: 提供播放流的代码如下:

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: is there a method to play a SoundCloud file without logging in to your SoundCloud account first? 问题:有没有一种方法可以播放SoundCloud文件而无需先登录到您的SoundCloud帐户? We hope all users consider using SoundCloud - however for usability if would be useful if new users could listen to a number of tracks before. 我们希望所有用户都考虑使用SoundCloud - 但是,如果新用户之前可以收听多个曲目,那么可用性是有用的。

For public access with the IOS Soundcloud SDK you will need to add the Soundcloud clientID as a parameter to your request string: 要使用IOS Soundcloud SDK进行公共访问,您需要将Soundcloud clientID作为参数添加到请求字符串中:

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

Then it will work for public tracks when the withAccount: parameter is nil. 然后当withAccount:参数为nil时,它将适用于公共轨道。

More elegantly, you can as well pack the "client_id" in a dictionary and use it with usingParameters: 更优雅的是,你可以将“client_id”打包在字典中并与usingParameters一起使用:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM