下载时如何开始播放AVAudioPlayer?

时间:2010-11-22 17:27:20

标签: iphone objective-c xcode nsurlconnection avaudioplayer

我在网址http://mysite.com/MP3/track1.mp3上有一个mp3曲目。 使用NSURLConnection和NSDocumentDirectory将其下载到本地路径。 我想尽快开始播放此曲目,而不是在完全下载后播放。有一段时间来完成这个吗?我尝试设置“X”大小限制,一旦下载到该号码开始播放音轨。但这只能达到初始化为“X”尺寸的程度。提前致谢。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

    [self.inComingData appendData:data];
    //NSLog(@"inComingData: %d", [inComingData length]);

    CGFloat dataLen = [[NSString stringWithFormat:@"%d",[self.inComingData length]] floatValue];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory = [paths objectAtIndex:0];

    appDelegate.path = [documentDirectory stringByAppendingPathComponent:@"track.mp3"];
    [self.inComingData writeToFile:appDelegate.path atomically:YES];

//  NSInteger receivedLen = [self.inComingData length];
//  if ((receivedLen >= 100000) && (!checked)) {
//      //[appDelegate initAndPlay];
//      [appDelegate playTrack];
//      checked = TRUE;
//  }
    [appDelegate initPlayer];

}

1 个答案:

答案 0 :(得分:3)

您应该考虑使用CoreAudio或AudioToolbox,而不是使用AVFoundation。

Matt Gallagher使用AudioToolbox为这个确切的情况提供了一个很好的教程: http://cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html