Chrome Version: 57.0.2987.98 (Official Build) (64-bit)
OS: Win/Mac/Linux
What steps will reproduce the problem?
The current public PPAPI PPB_Audio (ppapi/c/ppb_audio.h) does not provide a way to select audio output device.
What is the expected result?
To implement this feature, we need to add another dev PPAPI: |PPB_AudioOutput_Dev|, and we keep the current |PPB_Audio| interface for backward compatibility.
This requires to make the following changes:
(1) Keep the current PPB_Audio interface unchanged
(2) Add a new dev interface: PPB_AudioOutput_Dev
(3) Implement PPB_AudioOutput_Dev using the typical HostResource implementations like PPB_AudioInput_Dev
(4) Add ppapi/proxy/audio_output_resource.h/cc etc. to implement |AudioOutputResource|.
(5) Add content/renderer/pepper/pepper_audio_output_host.h/cc etc. to implement |PepperAudioOutputHost|.
(6) Keep ppb_audio_proxy.h/cc, ppb_audio_shared.h/cc, ppb_audio_impl.h/cc unchanged, so that the current |PPB_Audio| will not be affected.
(7) Modify content/renderer/pepper/pepper_platform_audio_output.h/cc to handle both |AudioHelper| and |PepperAudioOutputHost| clients.
(8) The way to implement |PepperAudioOutputHost| can be borrowed from "media/audio/audio_output_device.cc" where audio output selection is supported for javascript.
(9) Add necessary IPC message definitions for PPB_AudioOutput_Dev
What happens instead?
The user can only use system default audio output device for audio playback, there is no way to choose other audio output devices in the system.
Comment 1 by ihf@chromium.org
, Mar 15 2017Components: Internals>Media>Audio