2011-12-02 17 views
6

Tôi đang sử dụng thuật toán của Matt Gallagher để thực hiện phát trực tuyến mp3 trong iOS nhưng đôi khi bạn tạm dừng ứng dụng và sau một thời gian, hãy tiếp tục bài hát một thông báo bật lên: " Không thể định cấu hình đọc luồng mạng ". Tôi đã phân tích mã, nhưng tôi không thấy làm thế nào để có được xung quanh lỗi này. Có ai quản lý để đối phó tốt hơn với lỗi này?AudioStreamer của Matt Gallagher trên iPhone - không thể định cấu hình luồng đọc mạng

Matt Gallagher's AudioStreamer code

+0

Bất kỳ câu trả lời nào bạn có thể chia sẻ trên đó? –

+0

Tôi gặp sự cố này khi không có kết nối Internet. Đây có phải là một yếu tố? Là nó khi bạn đang di chuyển từ hoặc đến wifi? – Jensen2k

Trả lời

5

Tôi đã trải qua những điều tương tự với ứng dụng của bên thứ 3 này và không thể tìm thấy một giải pháp cho điều đó và avplayer bản địa sau đó tôi đã cố gắng táo (không avaudioplayer) mang đến cho bạn khả năng dòng với chức năng :initWithURL. đây là tài liệu tham khảo lớp, bằng cách này: http://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html

ngoài ở đây là mã của tôi để chơi âm nhạc:

NSURL *url = [[NSURL alloc] initWithString:sourceURL]; 
      theItem = [AVPlayerItem playerItemWithURL:url]; 
      theItem addObserver:self forKeyPath:@"status" options:0 context:nil]; 
      theAudio = [AVPlayer playerWithPlayerItem:mainDelegate.theItem]; 

để bắt cho dù người chơi được readyto chơi bạn thêm người quan sát trên và sau đó bạn có thể kiểm tra xem nó như :

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
         change:(NSDictionary *)change context:(void *)context { 
    if (object == theItem && [keyPath isEqualToString:@"status"]) { 
     if(theItem.status == AVPlayerStatusReadyToPlay)  
     { 
      [theAudio play]; 
      [theItem removeObserver:self forKeyPath:@"status"]; 
     } 
     else if(theItem.status == AVPlayerStatusFailed) { 
      NSLog(@"%@" , mainDelegate.theItem.error.description); 
     } 
     else if(theItem.status == AVPlayerStatusUnknown) 
      NSLog(@"unknown"); 
    } 
} 

Tôi hy vọng điều này sẽ hữu ích.

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