2009-10-22 49 views
17

Vấn đề của tôi là như sau. Tôi nhận được mã này và tôi đoán một NSURL bị hỏng vì AVAudioPlayer là không sau khi khởi tạo:AVAudioPlayer có URL bên ngoài là * .m4p

NSString *dummyURLString = @"http://a825.phobos.apple.com/us/r2000/005/Music/d8/a8/d2/mzi.jelhjoev.aac.p.m4p"; 
NSError *error; 
NSURL *url = [NSURL URLWithString:dummyURLString]; 
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
[player play]; 

Bất kỳ đề xuất nào xảy ra ở đây?

Các lỗi & thấy điều này:

Error Domain=NSOSStatusErrorDomain Code=-43 "Operation could not be completed. (OSStatus error -43.)" 
+0

URL đến từ đâu? – mahboudz

Trả lời

9

Tôi cố gắng này đầu tiên nhưng đã nhận lỗi 2003334207:

NSData *soundData = [NSData dataWithContentsOfURL:URL]; 
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:soundData error:&error]; 

Có vẻ rằng AVAudioPlayer thực sự muốn có một tập tin. Vì vậy, tôi đặt dữ liệu vào tệp trước tiên:

NSURL *url = [NSURL URLWithString:@"http://a825.phobos.apple.com/us/r2000/005/Music/d8/a8/d2/mzi.jelhjoev.aac.p.m4p"]; 
NSData *soundData = [NSData dataWithContentsOfURL:url]; 
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
         NSUserDomainMask, YES) objectAtIndex:0] 
         stringByAppendingPathComponent:@"sound.caf"]; 
[soundData writeToFile:filePath atomically:YES]; 
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL 
       fileURLWithPath:filePath] error:NULL]; 
NSLog(@"error %@", error); 
+0

Cảm ơn rất nhiều, điều này đã giải quyết bước đầu tiên :) Nhưng có vẻ như tôi, AVAudioPlayer không thể phát lại tệp m4p: (... nó không bắt đầu phát hoặc trả lời bất kỳ phương thức đại biểu nào: ( – tommy

+0

) mã mới một thử.Tôi đã nhận nó để chơi cho một thời điểm ngắn và sau đó nó dừng lại.Tuy nhiên điều tra.Đâu là URL từ? – mahboudz

+0

Nhờ câu trả lời tuyệt vời của bạn, tôi có thể sửa chữa nó một vấn đề tương tự. – zono

6

Thay vì sử dụng AVAudioPlayer, bạn có thể sử dụng AVPlayer. AVPlayer hoạt động tốt với các URL từ xa

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