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

    • 3b3df3a180b20c62e0178def7c3e1e2bf08b7c91

      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.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

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

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes