Uploaded image for project: 'Qt Mobility'
  1. Qt Mobility
  2. QTMOBILITY-1001

The Symbian implementation of QAudioOutput::suspend() and QAudioOutput::resume() uses Stop() rather than Pause()

    XMLWordPrintable

Details

    • 3b3df3a180b20c62e0178def7c3e1e2bf08b7c91

    Description

      The Symbian audio API on which this implementation is based, CMMFDevSound, has a pair of functions, Pause() and Resume(), which match the corresponding QAudioInput / QAudioOutput functions suspend() and resume(). However, although these functions should always work for DevSound instances used for recording, not all DevSound implementations support their usage during playback. Later versions of the Symbian platform include a function, CMMFDevSound::IsResumeSupported(), which can be used to query this support. However, because this function is not available on S60 3.1, it cannot be used in this implementation.

      Because of this, the implementation of QAudioOutput::suspend() calls CMMFDevSound::Stop() rather than CMMFDevSound::Pause(). This causes currently buffered data to be dropped; this is replaced with a corresponding amount of silence when QAudioOutput::resume() is called. Although this means that the API works correctly from a conformance perspective (i.e. its processedUSecs() function returns the correct value following resumption of playback), it does not have the expected behaviour from a user's perspective.

      An investigation needs to be carried out to determine how best to enable the implementation of QAudioOutput::suspend() to call CMMFDevSound::Pause() on platforms which support it.

      Attachments

        Issue Links

          Activity

            People

              sramaraj Sathishkumar Ramaraj
              gastockw Gareth Stockwell
              Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: