Как мне остановить RemoteIO, когда файл закончен? - PullRequest
0 голосов
/ 18 августа 2011

Я использую следующее для воспроизведения аудио:

OSStatus PlayRenderCallback (
                              void *                        inRefCon,
                              AudioUnitRenderActionFlags *  ioActionFlags,
                              const AudioTimeStamp *            inTimeStamp,
                              UInt32                            inBusNumber,
                              UInt32                            inNumberFrames,
                              AudioBufferList *             ioData)
{
    EffectState *effectState = (EffectState*) inRefCon;

    if(effectState->play)
    {
        XThrowIfError(ExtAudioFileRead(effectState->sourceFile, &inNumberFrames, ioData), "Read failed!");

        if(inNumberFrames == 0)
        {
            return noErr;
        }

Затем я обрабатываю аудио и отправляю его в буфер.

Что я хочу знать, это то, что я положилв ответ остановить воспроизведение?Я попытался:

AudioOutputUnitStop(remoteIOUnit);

И это работает, один раз.Я не могу запустить устройство снова.

Спасибо всем,

Джим

1 Ответ

0 голосов
/ 22 августа 2011

Кажется, вы не можете остановить копию удаленного ввода-вывода. Вместо копирования я использовал в своей структуре только rio, и теперь он работает.

...