Details

    • Change Request
    • Resolution: Out of scope
    • P2: Important
    • None
    • Multimedia

    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

          Activity

            People

              Unassigned Unassigned
              minshin Minjung Shin (closed Nokia identity) (Inactive)
              Votes:
              5 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: