提交 31367b1a 编写于 作者: B bbcallen

ios: ijksdl: AudioUnit: do not block pause

上级 0bbdd354
......@@ -37,6 +37,5 @@
- (void)close;
@property (nonatomic, readonly) SDL_AudioSpec spec;
@property (nonatomic, getter=isPaused) BOOL paused;
@end
......@@ -27,6 +27,7 @@
@implementation IJKSDLAudioUnitController {
AudioUnit _auUnit;
BOOL _isPaused;
}
- (id)initWithAudioSpec:(SDL_AudioSpec *)aSpec
......@@ -173,6 +174,7 @@
if (!_auUnit)
return;
_isPaused = NO;
AudioOutputUnitStart(_auUnit);
AudioSessionSetActive(true);
}
......@@ -182,8 +184,7 @@
if (!_auUnit)
return;
AudioOutputUnitStop(_auUnit);
// AudioSessionSetActive(false);
_isPaused = YES;
}
- (void)flush
......@@ -191,7 +192,7 @@
if (!_auUnit)
return;
AudioOutputUnitStop(_auUnit);
AudioUnitReset(_auUnit, kAudioUnitScope_Global, 0);
}
- (void)stop
......@@ -234,7 +235,7 @@ static OSStatus RenderCallback(void *inRefCon,
@autoreleasepool {
IJKSDLAudioUnitController* auController = (__bridge IJKSDLAudioUnitController *) inRefCon;
if (!auController || auController.paused) {
if (!auController || auController->_isPaused) {
for (UInt32 i = 0; i < ioData->mNumberBuffers; i++) {
AudioBuffer *ioBuffer = &ioData->mBuffers[i];
memset(ioBuffer->mData, auController.spec.silence, ioBuffer->mDataByteSize);
......@@ -242,11 +243,11 @@ static OSStatus RenderCallback(void *inRefCon,
return noErr;
}
for (UInt32 i = 0; i < ioData->mNumberBuffers; i++) {
for (int i = 0; i < (int)ioData->mNumberBuffers; i++) {
AudioBuffer *ioBuffer = &ioData->mBuffers[i];
(*auController.spec.callback)(auController.spec.userdata, ioBuffer->mData, ioBuffer->mDataByteSize);
}
return noErr;
}
}
......
......@@ -53,7 +53,7 @@ int aout_open_audio(SDL_Aout *aout, SDL_AudioSpec *desired, SDL_AudioSpec *obtai
void aout_pause_audio(SDL_Aout *aout, int pause_on)
{
SDLTRACE("aout_pause_audio()\n");
SDLTRACE("aout_pause_audio(%d)\n", pause_on);
SDL_Aout_Opaque *opaque = aout->opaque;
if (pause_on) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册