2014-08-29 26 views
0

我從我的API獲取音樂URL,其持續時間爲4-5分鐘。每當我嘗試將該URL轉換爲數據時,它都耗費大量時間。方法,以便我們可以快速轉換它。目標C中從NSURL快速下載到NSDATA

這是我的嘗試:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) 
{ 
    data1 = [NSData dataWithContentsOfURL:trackurl]; 
    dispatch_async(dispatch_get_main_queue(), ^(void) 
    { 
     self.player = [[AVAudioPlayer alloc] initWithData:data1 error:nil 
     [self.player play]; 
    }); 
}); 
+0

你不能,你只能通過顯示提示來改善用戶體驗。或者您可以儘早加載數據。 – KudoCC 2014-08-29 09:27:23

+0

我假設你沒有將URL轉換爲數據,但是你正在發出網絡請求。網絡請求無法真正優化。我同意@KudoCC,你應該添加一個加載微調或類似的東西。 – 2014-08-29 09:52:12

回答

2

那麼你不能做太多影響互聯網連接的速度,但也許要傳輸音頻,而不是在開始播放之前下載所有?

如果是這樣,有AVAudioPlayerhere的替代。

如果下載速度跟不上播放速度,這可能會導致類似的問題,但我認爲這是唯一的選擇。

順便說一句,你說出你的問題的方式很混亂。您不是將網址轉換爲數據,而是使用URL指定的位置下載數據。

+0

我更新了這個問題。請檢查一下 – 2014-08-29 10:11:40

+0

我會使用流媒體而不是下載。另外也許他可以提前幾秒鐘下載,如果他知道接下來會播放什麼聲音的話。 – 2014-08-29 11:15:02