I’m using the following to play audio:
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;
}
Then I process the audio and send it to the buffer.
What I want to know is what do I put in the return to stop playback? I tried:
AudioOutputUnitStop(remoteIOUnit);
And that works, once. I can’t start the unit again.
Thanks all,
Jim
It seems you cannot stop a copy of a remote io. Rather than copying I used only the rio in my struct and now it works.