如何实现字符串SCAudioStream? - 声云

时间:2012-05-09 20:52:30

标签: objective-c audio cloud audio-streaming

我正在使用声音云sdk,我正在尝试使用他们的库来播放音频流。

我无法找到关于如何使用该类的任何参考。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

如果你在谈论this libraries我可以帮助你。

首先,您应该运行此方法以通过其ID获取有关track的一些信息:

[api performMethod: @"GET" 
            onResource: @"tracks" 
        withParameters: [NSDictionary dictionaryWithObject:trackID forKey:@"ids"] 
               context: @"trackid" 
              userInfo: nil];

如果你不知道trackID并且只有像这样的跟踪链接:http://soundcloud.com/go-yoshimura/mikasasukasa,那么运行这个方法:

[api performMethod: @"GET" 
            onResource: @"resolve" 
        withParameters: [NSDictionary dictionaryWithObject:songLink forKey:@"url"]
               context: @"songname" 
              userInfo: nil];

然后你应该实现委托的方法:

- (void)soundCloudAPI:(SCSoundCloudAPI *)soundCloudAPI 
    didFinishWithData:(NSData *)data 
              context:(id)context 
             userInfo:(id)userInfo;

- (void)soundCloudAPI:(SCSoundCloudAPI *)soundCloudAPI 
     didFailWithError:(NSError *)error 
              context:(id)context 
             userInfo:(id)userInfo;

在第一种方法中,您应该使用JSON Parser(JSONKit或SBJSON)解析数据。你应该得到NSDictionary。

streamURL = [(NSDictionary *)jsonData objectForKey:@"stream_url"];
streamable = [[(NSDictionary *)jsonData objectForKey:@"streamable"] boolValue];

如果此曲目是可流式的,您可以通过以下方式获取SCAudioStream:

stream = [[SCAudioStream alloc] initWithURL:[NSURL URLWithString:streamURL] authentication:auth];

Auth,您可以通过以下方式在init方法中创建:

conf = [SCSoundCloudAPIConfiguration configurationForProductionWithClientID: kSCClientID
                                                                       clientSecret: kSCClientSecret
                                                                        redirectURL: kSCRedirectURL];
auth = [[SCSoundCloudAPIAuthentication alloc] initWithAuthenticationDelegate:self apiConfiguration:conf];

现在你有了SCAudioStream。

//Playing
[stream play];

//Pause
[srteam pause];

//Seeking
[stream seekToMillisecond:ms startPlaying:YES];

这就是全部:)