2009-04-29 34 views
0

我剛剛開發了一款iPhone音頻流應用程序......現在它可以播放音頻文件沒有任何問題..當iPhone網絡從3G切換到WiFi和反之亦然時,問題出現了。我需要在網絡切換時暫停流,但當網絡來臨時我無法恢復播放。任何人都可以指示我如何使用代碼處理這種情況?如何處理iPhone中的網絡切換?

問候, SYAM小號

回答

3

您可能您的應用程序設置爲check Reachability status,然後發送一個「暫停」 NSNotification當網絡狀態變化和網絡不可達(和,同樣,一個「玩」 NSNotification當網絡狀態的變化,並且現在網絡又可達):

[[Reachability sharedReachability] setNetworkStatusNotificationsEnabled:YES]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:@"kNetworkReachabilityChangedNotification" object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pauseStreaming:) name:@"kPauseAudioStreamingIfPlaying" object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pauseStreaming:) name:@"kPlayAudioStreamingIfPaused" object:nil]; 

- (void) reachabilityChanged:(id)sender { 
    NetworkStatus reachabilityStatus = [[Reachability sharedReachability] internetConnectionStatus]; 
    if (reachabilityStatus == NotReachable) 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"kPauseAudioStreamingIfPlaying" object:nil]; 
    else 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"kPlayAudioStreamingIfPaused" object:nil]; 
} 
+0

嗨亞歷克斯, 感謝您reply..I正在使用CFNetwork的框架,用於讀取流bytes..Whenever任何錯誤發生readstream呼叫功能可以不會被解僱。因此我無法恢復比賽。 。你知道如何重置readstream回調來獲取流數據嗎? – 2009-04-29 06:50:15