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];
}
}