4
我有一个MP3轨道在URL http://mysite.com/MP3/track1.mp3。 将其下载到具有NSURLConnection和NSDocumentDirectory的本地路径。 我想尽快开始播放此曲目,而不是在完全下载后播放。有一段时间要完成这个吗?我曾尝试设置“X”大小限制,并且一旦下载命中该数字开始播放曲目。但是这只能达到以“X”尺寸初始化的程度。提前致谢。如何在下载时开始播放AVAudioPlayer?
- (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];
}
如果你想要的数据长度为float出于某种原因(不明白为什么,因为它永远是一个整数) ,你现在在做什么真的是低效率的。你可以在C中将整数值转换为浮点数(尽管确保你使用的是正确的浮点数,所以你不会损失太多)。所以你可以这样做:double dataLen =(double)[self.inComingData length]; – 2010-11-22 17:52:29
嘿杰森,谢谢你的回复。浮动是为我的进度条。感谢您的建议。但是,在数据完全下载并初始化之前,您是否对如何播放AVAudioPlayer有任何建议? – slowman21 2010-11-22 17:56:14