diff options
Diffstat (limited to 'Alc')
-rw-r--r-- | Alc/backends/opensl.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Alc/backends/opensl.c b/Alc/backends/opensl.c index 4e260879..ed5ce3f6 100644 --- a/Alc/backends/opensl.c +++ b/Alc/backends/opensl.c @@ -401,6 +401,16 @@ static ALCboolean opensl_start_playback(ALCdevice *Device) static void opensl_stop_playback(ALCdevice *Device) { osl_data *data = Device->ExtraData; + SLPlayItf player; + SLresult result; + + result = SLObjectItf_GetInterface(data->bufferQueueObject, SL_IID_PLAY, &player); + PRINTERR(result, "bufferQueue->GetInterface"); + if(SL_RESULT_SUCCESS == result) + { + result = SLPlayItf_SetPlayState(player, SL_PLAYSTATE_STOPPED); + PRINTERR(result, "player->SetPlayState"); + } free(data->buffer); data->buffer = NULL; |