2014-08-29 1 views
0

내 API에서 음악 URL을 가져 오는 중입니다. 재생 시간은 4-5 분입니다. 해당 URL을 데이터로 변환하려고 할 때마다 많은 시간을 소비합니다. 메소드를 사용하여 신속하게 변환 할 수 있습니다. Objective 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

+0

여기 URL을 데이터로 변환하지 않지만 네트워크 요청을하는 것으로 가정합니다. 그리고 네트워크 요청은 실제로 최적화 될 수 없습니다. @KudoCC에 동의합니다. 로딩 스피너 또는 비슷한 것을 추가해야합니다. –

답변

2

그럼 당신은 인터넷 연결 속도에 영향을 많이 할 수없는, 그러나 아마도 당신은 오히려 게임을 시작하기 전에 모든 다운로드보다 오디오를 스트리밍 할 ?

AVAudioPlayerhere의 대안이 있습니다.

다운로드 속도가 재생 속도를 따라갈 수없는 경우 이와 비슷한 문제가 발생할 수 있지만 그게 유일한 방법이라고 생각합니다.

덧붙여서 당신의 질문 문구는 매우 혼란 스럽습니다. URL을 데이터로 변환하지 않으면 URL로 지정된 위치를 사용하여 데이터를 다운로드하는 것입니다.

+0

질문을 업데이트했습니다. 확인해보십시오. –

+0

다운로드하는 대신 스트리밍을 사용합니다. 또한 다음에 어떤 소리가 들릴지 생각하면 사전에 몇 초를 다운로드 할 수 있습니다. –