2011-08-16 4 views
2

AudioQueue를 사용하여 임의의 소스에서 오디오를 스트리밍합니다 (클래스에는 기본적으로 패킷을 제공하는 델리 게이트 만 필요함). 모든 기능을 포함하는 클래스를 작성하여 AudioQueueClass를 호출 할 수있게했습니다. 이 클래스를 사용하여 많은 노래를 연주하고 있습니다. 각 노래 사이에 수업을 풀고 다음 노래를 재생할 새 AudioQueueClass 인스턴스를 만듭니다. 두 가지 문제가 발생합니다. 원인을 찾지 못했을 수도 있습니다. 이 문제에 부딪혀 불빛을 비춰 줄 수 있습니다.ios AudioQueue 여러 노래 스트리밍

1 언제든지 이전 노래를 몇 초 재생 한 다음 현재 노래로 돌아와서 왜 이런 일이 벌어 질지 확신 할 수 없습니다. 각 노래에 대해 새 대기열을 만들고, 내가 대기열을 적절히 처리하고 있다고 생각합니다. ately - 따라야 할 코드

2 - 이건 더욱 악화됩니다. 때로는 오디오 큐가 재생되는 3 번째 또는 4 번째 노래에 들어갈 때가 있습니다 ... 나는 AudioQueueInputCallback inCallbackProc가 호출되는 것을 멈추고, 큐는 재생 및 패킷 처리를 멈추었 기 때문에 추측 할 수 있습니다. 그러나 이유를 찾을 수 없습니다 ... 주목할만한 또 다른 사항은 외부 소스에서 장치로 스트리밍 할 때만 발생한다는 것입니다. 스트리밍의 경우에는 사운드가 멈추는 반면 (매우 별나다), 패킷으로 나는 소리가 나고 재생되지만, 소리는 멈춘다. (꽤 별나다.)

다음은 오디오 큐를 처리하기 위해 사용하는 코드이다. , 더 이상 게시물을 게시하지 관련성이 높은 부분을 게시하시기 바랍니다 나를 알려 주시기 바랍니다 당신은 코드와 병 포스트 중 하나를보고 싶다면 흐름이

AudioQueueFlush(audioQueue); 
AudioQueueStop(audioQueue, true); 
if (audioFileStream) 
{ 
    err = AudioFileStreamClose(audioFileStream); 
    audioFileStream = nil; 
    if (err) 
    { 
     [self failWithErrorCode:AS_FILE_STREAM_CLOSE_FAILED]; 
    } 
} 

// 
// Dispose of the Audio Queue 
// 
if (audioQueue) 
{ 
    err = AudioQueueDispose(audioQueue, true); 
    audioQueue = nil; 
    if (err) 
    { 
     [self failWithErrorCode:AS_AUDIO_QUEUE_DISPOSE_FAILED]; 
    } 
} 

답변

0

은 당연한 오류가 전혀 오디오 트리머에 없었다 알고 보니, 내가 스트리밍되는 음악을 쓰는 한 방법이었다 .. 후론 나는 다니엘

다시 감사

...이 모든 것을 확실히 밖으로 일 고정