2013-02-13 32 views
5

Sử dụng ví dụ mã sau từ trang Nhà phát triển SoundCloud, AVAudioPlayer sẽ bắt đầu phát sau khi nhận được phản hồi SCRequest. Tùy thuộc vào kích thước của tệp được yêu cầu, quá trình này có thể mất chút thời gian.

API SoundCloud của iOS có cung cấp giải pháp đệm trước để có thể bắt đầu phát âm thanh trước khi tất cả dữ liệu đã được nhận hay tôi cần triển khai giải pháp riêng với sự trợ giúp của NSURLConnection để đạt được điều này?Bắt đầu phát luồng âm thanh SoundCloud trong iOS bằng cách sử dụng bộ đệm trước

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSDictionary *track = [self.tracks objectAtIndex:indexPath.row]; 
    NSString *streamURL = [track objectForKey:@"stream_url"]; 
    SCAccount *account = [SCSoundCloud account]; 

    [SCRequest performMethod:SCRequestMethodGET 
        onResource:[NSURL URLWithString:streamURL] 
       usingParameters:nil 
        withAccount:account 
     sendingProgressHandler:nil 
       responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
      NSError *playerError; 
      player = [[AVAudioPlayer alloc] initWithData:data error:&playerError]; 
      [player prepareToPlay]; 
      [player play]; 
     }]; 
} 
+0

bạn có giải pháp cho vấn đề này không? –

+0

bất kỳ giải pháp nào mà tôi cũng gặp phải trên cùng một vấn đề. –

Trả lời

1

afaik không có giải pháp đệm trước tại thời điểm này. Nếu bạn muốn đóng góp cho API SoundCloud của chúng tôi, chúng tôi muốn xem xét Yêu cầu kéo từ bạn về tính năng này.

Điều này có thể ảnh hưởng đến CocoaSoundCloudAPIOAuth2Client.

Mã hóa hạnh phúc!

+0

hiện có giải pháp không? –

+0

bất kỳ giải pháp nào mà tôi cũng gặp phải trên cùng một vấn đề. –

3

Để dòng nhạc từ SoundCloud, tất cả các bạn cần làm là vượt qua URL để AVPlayer với id khách hàng:

NSString *urlString = [NSString stringWithFormat:@"%@?client_id=%@", track.streamURL, self.clientId]; 
player = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:urlString]]; 
[player play]; 

Nó sẽ mất một chút công việc phụ để làm cho nó một tải tiến bộ. Hy vọng rằng sẽ giúp.

+0

Nếu họ thực sự muốn họ sẽ phải sử dụng một cái gì đó như STKAudioPlayer và nhận được bộ đệm trước khi chúng được chơi và ave bộ đệm định dạng PCM vào một tập tin. – kezi

+0

Cảm ơn. Điều này đơn giản hơn nhiều so với yêu cầu GET với 'allow_redirects = False' như được mô tả trong hướng dẫn API cho các SDK khác của SoundCloud. – blwinters

Các vấn đề liên quan