Details
-
Change Request
-
Resolution: Out of scope
-
P2: Important
-
None
Description
Gaming and Karaoke applications need mixing of 2 or more audio streams. The mixed stream is played to the audio output device in case of gaming apps. Karaoke app needs mixing of user's recorded voice with the music and the mixed sound is saved to a file. So if we have a Mixer API which mixes different audio streams and gives the mixed data back to the application or plays the mixed stream to the device, it will be quite handy to the third part application developers.
With the current API, application has to create multiple instances of QMediaPlayer and then try to play them simultaneously. In this case, the audio streams from each QMediaPlayer are mixed by a global mixer in the platform at quite lower level and played to the audio output. There is no way to pass this mixed data back to the application for saving this data to a file with the current Qt Mobility API.
Where as, if we have a high level mixer implementation, it can mix the streams upfront and send the mixed stream to the lower levels. There is always one audio stream open at the lower levels and hence we can avoid initialization/deinitialization of streams at the lower level when a stream is added/removed from the mixed stream. This design would give more control on mixing and also we can have the provision to pass the mixed data back to the client. We need to check the performance of the s/w mixing though. This QAudioMixer API should support just pcm format as an input and we need to compliment this API with QAudioCodec API(not there yet, QTMOBILITY-1132) that decodes the data if needed.
Attachments
Issue Links
- relates to
-
QTBUG-23790 Codec API in Qt Mobility
- Withdrawn
-
QTBUG-23771 QAudioOutput volume control
- Closed