diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c index 86e3030c06e46c4426ffbe49aa77555faff57bfe..bcc1d4608281dc1aa0840826a05bba918980e618 100644 --- a/modules/audio_output/auhal.c +++ b/modules/audio_output/auhal.c @@ -1277,12 +1277,20 @@ static void Play (audio_output_t * p_aout, block_t * p_block) static void Pause (audio_output_t *p_aout, bool pause, mtime_t date) { + struct aout_sys_t * p_sys = p_aout->sys; VLC_UNUSED(date); - if (pause) - AudioOutputUnitStop(p_aout->sys->au_unit); - else - AudioOutputUnitStart(p_aout->sys->au_unit); + if (p_aout->sys->b_digital) { + if (pause) + AudioDeviceStop(p_sys->i_selected_dev, p_sys->i_procID); + else + AudioDeviceStart(p_sys->i_selected_dev, p_sys->i_procID); + } else { + if (pause) + AudioOutputUnitStop(p_sys->au_unit); + else + AudioOutputUnitStart(p_sys->au_unit); + } } static void Flush(audio_output_t *p_aout, bool wait)