<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- qaudiodecodercontrol.cpp --> <title>QAudioDecoderControl Class | Qt Multimedia 5.12.6</title> <link rel="stylesheet" type="text/css" href="style/offline-simple.css" /> <script type="text/javascript"> document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css"); // loading style sheet breaks anchors that were jumped to before // so force jumping to anchor again setTimeout(function() { var anchor = location.hash; // need to jump to different anchor first (e.g. none) location.hash = "#"; setTimeout(function() { location.hash = anchor; }, 0); }, 0); </script> </head> <body> <div class="header" id="qtdocheader"> <div class="main"> <div class="main-rounded"> <div class="navigationbar"> <table><tr> <td >Qt 5.12</td><td ><a href="qtmultimedia-index.html">Qt Multimedia</a></td><td ><a href="qtmultimedia-modules.html">C++ Classes</a></td><td >QAudioDecoderControl</td></tr></table><table class="buildversion"><tr> <td id="buildversion" width="100%" align="right"><a href="qtmultimedia-index.html">Qt 5.12.6 Reference Documentation</a></td> </tr></table> </div> </div> <div class="content"> <div class="line"> <div class="content mainContent"> <div class="sidebar"> <div class="toc"> <h3><a name="toc">Contents</a></h3> <ul> <li class="level1"><a href="#public-functions">Public Functions</a></li> <li class="level1"><a href="#signals">Signals</a></li> <li class="level1"><a href="#static-public-members">Static Public Members</a></li> <li class="level1"><a href="#protected-functions">Protected Functions</a></li> <li class="level1"><a href="#macros">Macros</a></li> <li class="level1"><a href="#details">Detailed Description</a></li> </ul> </div> <div class="sidebar-content" id="sidebar-content"></div></div> <h1 class="title">QAudioDecoderControl Class</h1> <!-- $$$QAudioDecoderControl-brief --> <p>The <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> class provides access to the audio decoding functionality of a <a href="qmediaservice.html">QMediaService</a>. <a href="#details">More...</a></p> <!-- @@@QAudioDecoderControl --> <div class="table"><table class="alignedsummary"> <tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include <QAudioDecoderControl></span> </td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += multimedia</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="qmediacontrol.html">QMediaControl</a></td></tr></table></div><p><b>This class is under development and is subject to change.</b></p> <ul> <li><a href="qaudiodecodercontrol-members.html">List of all members, including inherited members</a></li> </ul> <a name="public-functions"></a> <h2 id="public-functions">Public Functions</h2> <div class="table"><table class="alignedsummary"> <tr><td class="memItemLeft rightAlign topAlign"> virtual </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#dtor.QAudioDecoderControl">~QAudioDecoderControl</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual QAudioFormat </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#audioFormat">audioFormat</a></b>() const = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#bufferAvailable">bufferAvailable</a></b>() const = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual qint64 </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#duration">duration</a></b>() const = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual qint64 </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#position">position</a></b>() const = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual QAudioBuffer </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#read">read</a></b>() = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#setAudioFormat">setAudioFormat</a></b>(const QAudioFormat &<i>format</i>) = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#setSourceDevice">setSourceDevice</a></b>(QIODevice *<i>device</i>) = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#setSourceFilename">setSourceFilename</a></b>(const QString &<i>fileName</i>) = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual QIODevice *</td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#sourceDevice">sourceDevice</a></b>() const = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual QString </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#sourceFilename">sourceFilename</a></b>() const = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#start">start</a></b>() = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual QAudioDecoder::State </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#state">state</a></b>() const = 0</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#stop">stop</a></b>() = 0</td></tr> </table></div> <a name="signals"></a> <h2 id="signals">Signals</h2> <div class="table"><table class="alignedsummary"> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#bufferAvailableChanged">bufferAvailableChanged</a></b>(bool <i>available</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#bufferReady">bufferReady</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#durationChanged">durationChanged</a></b>(qint64 <i>duration</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#error">error</a></b>(int <i>error</i>, const QString &<i>errorString</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#finished">finished</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#formatChanged">formatChanged</a></b>(const QAudioFormat &<i>format</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#positionChanged">positionChanged</a></b>(qint64 <i>position</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#sourceChanged">sourceChanged</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#stateChanged">stateChanged</a></b>(QAudioDecoder::State <i>newState</i>)</td></tr> </table></div> <a name="static-public-members"></a> <h2 id="static-public-members">Static Public Members</h2> <div class="table"><table class="alignedsummary"> <tr><td class="memItemLeft rightAlign topAlign"> const QMetaObject </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#staticMetaObject-var">staticMetaObject</a></b></td></tr> </table></div> <a name="protected-functions"></a> <h2 id="protected-functions">Protected Functions</h2> <div class="table"><table class="alignedsummary"> <tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#QAudioDecoderControl">QAudioDecoderControl</a></b>(QObject *<i>parent</i> = nullptr)</td></tr> </table></div> <a name="macros"></a> <h2 id="macros">Macros</h2> <div class="table"><table class="alignedsummary"> <tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#QAudioDecoderControl_iid">QAudioDecoderControl_iid</a></b></td></tr> </table></div> <a name="details"></a> <!-- $$$QAudioDecoderControl-description --> <div class="descr"> <h2 id="details">Detailed Description</h2> <p>The <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> class provides access to the audio decoding functionality of a <a href="qmediaservice.html">QMediaService</a>.</p> <p>The functionality provided by this control is exposed to application code through the <a href="qaudiodecoder.html">QAudioDecoder</a> class.</p> <p>The interface name of <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> is <code>org.qt-project.qt.audiodecodercontrol/5.0</code> as defined in <a href="qaudiodecodercontrol.html#QAudioDecoderControl_iid">QAudioDecoderControl_iid</a>.</p> </div> <p><b>See also </b><a href="qmediaservice.html#requestControl-1">QMediaService::requestControl</a>() and <a href="qaudiodecoder.html">QAudioDecoder</a>.</p> <!-- @@@QAudioDecoderControl --> <div class="func"> <h2>Member Function Documentation</h2> <!-- $$$QAudioDecoderControl[overload1]$$$QAudioDecoderControlQObject* --> <h3 class="fn" id="QAudioDecoderControl"><a name="QAudioDecoderControl"></a><code>[protected] </code>QAudioDecoderControl::<span class="name">QAudioDecoderControl</span>(<span class="type">QObject</span> *<i>parent</i> = nullptr)</h3> <p>Constructs a new audio decoder control with the given <i>parent</i>.</p> <!-- @@@QAudioDecoderControl --> <!-- $$$~QAudioDecoderControl[overload1]$$$~QAudioDecoderControl --> <h3 class="fn" id="dtor.QAudioDecoderControl"><a name="dtor.QAudioDecoderControl"></a><code>[virtual] </code>QAudioDecoderControl::<span class="name">~QAudioDecoderControl</span>()</h3> <p>Destroys an audio decoder control.</p> <!-- @@@~QAudioDecoderControl --> <!-- $$$audioFormat[overload1]$$$audioFormat --> <h3 class="fn" id="audioFormat"><a name="audioFormat"></a><code>[pure virtual] </code><span class="type"><a href="qaudioformat.html">QAudioFormat</a></span> QAudioDecoderControl::<span class="name">audioFormat</span>() const</h3> <p>Returns the current audio format of the decoded stream.</p> <p>Any buffers returned should have this format.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#setAudioFormat">setAudioFormat</a>() and <a href="qaudiodecodercontrol.html#formatChanged">formatChanged</a>().</p> <!-- @@@audioFormat --> <!-- $$$bufferAvailable[overload1]$$$bufferAvailable --> <h3 class="fn" id="bufferAvailable"><a name="bufferAvailable"></a><code>[pure virtual] </code><span class="type">bool</span> QAudioDecoderControl::<span class="name">bufferAvailable</span>() const</h3> <p>Returns true if a buffer is available to be read, and false otherwise.</p> <!-- @@@bufferAvailable --> <!-- $$$bufferAvailableChanged[overload1]$$$bufferAvailableChangedbool --> <h3 class="fn" id="bufferAvailableChanged"><a name="bufferAvailableChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">bufferAvailableChanged</span>(<span class="type">bool</span> <i>available</i>)</h3> <p>Signals that the <a href="qaudiodecodercontrol.html#bufferAvailable">bufferAvailable</a> property has changed to <i>available</i>.</p> <!-- @@@bufferAvailableChanged --> <!-- $$$bufferReady[overload1]$$$bufferReady --> <h3 class="fn" id="bufferReady"><a name="bufferReady"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">bufferReady</span>()</h3> <p>Signals that a new buffer is ready for reading.</p> <!-- @@@bufferReady --> <!-- $$$duration[overload1]$$$duration --> <h3 class="fn" id="duration"><a name="duration"></a><code>[pure virtual] </code><span class="type">qint64</span> QAudioDecoderControl::<span class="name">duration</span>() const</h3> <p>Returns total duration (in milliseconds) of the audio stream or -1 if not available.</p> <!-- @@@duration --> <!-- $$$durationChanged[overload1]$$$durationChangedqint64 --> <h3 class="fn" id="durationChanged"><a name="durationChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">durationChanged</span>(<span class="type">qint64</span> <i>duration</i>)</h3> <p>Signals that the estimated <i>duration</i> of the decoded data has changed.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#positionChanged">positionChanged</a>().</p> <!-- @@@durationChanged --> <!-- $$$error[overload1]$$$errorintconstQString& --> <h3 class="fn" id="error"><a name="error"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">error</span>(<span class="type">int</span> <i>error</i>, const <span class="type">QString</span> &<i>errorString</i>)</h3> <p>Signals that an <i>error</i> has occurred. The <i>errorString</i> provides a more detailed explanation.</p> <!-- @@@error --> <!-- $$$finished[overload1]$$$finished --> <h3 class="fn" id="finished"><a name="finished"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">finished</span>()</h3> <p>Signals that the decoding has finished successfully. If decoding fails, error signal is emitted instead.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#start">start</a>(), <a href="qaudiodecodercontrol.html#stop">stop</a>(), and <a href="qaudiodecodercontrol.html#error">error</a>().</p> <!-- @@@finished --> <!-- $$$formatChanged[overload1]$$$formatChangedconstQAudioFormat& --> <h3 class="fn" id="formatChanged"><a name="formatChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">formatChanged</span>(const <span class="type"><a href="qaudioformat.html">QAudioFormat</a></span> &<i>format</i>)</h3> <p>Signals that the current audio format of the decoder has changed to <i>format</i>.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#audioFormat">audioFormat</a>() and <a href="qaudiodecodercontrol.html#setAudioFormat">setAudioFormat</a>().</p> <!-- @@@formatChanged --> <!-- $$$position[overload1]$$$position --> <h3 class="fn" id="position"><a name="position"></a><code>[pure virtual] </code><span class="type">qint64</span> QAudioDecoderControl::<span class="name">position</span>() const</h3> <p>Returns position (in milliseconds) of the last buffer read from the decoder or -1 if no buffers have been read.</p> <!-- @@@position --> <!-- $$$positionChanged[overload1]$$$positionChangedqint64 --> <h3 class="fn" id="positionChanged"><a name="positionChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">positionChanged</span>(<span class="type">qint64</span> <i>position</i>)</h3> <p>Signals that the current <i>position</i> of the decoder has changed.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#durationChanged">durationChanged</a>().</p> <!-- @@@positionChanged --> <!-- $$$read[overload1]$$$read --> <h3 class="fn" id="read"><a name="read"></a><code>[pure virtual] </code><span class="type"><a href="qaudiobuffer.html">QAudioBuffer</a></span> QAudioDecoderControl::<span class="name">read</span>()</h3> <p>Attempts to read a buffer from the decoder, without blocking. Returns invalid buffer if there are no decoded buffers available, or on error.</p> <!-- @@@read --> <!-- $$$setAudioFormat[overload1]$$$setAudioFormatconstQAudioFormat& --> <h3 class="fn" id="setAudioFormat"><a name="setAudioFormat"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">setAudioFormat</span>(const <span class="type"><a href="qaudioformat.html">QAudioFormat</a></span> &<i>format</i>)</h3> <p>Set the desired audio format for decoded samples to <i>format</i>.</p> <p>If the decoder does not support this format, <a href="qaudiodecodercontrol.html#error">error</a>() will be set to <code>FormatError</code>.</p> <p>If you do not specify a format, the format of the decoded audio itself will be used. Otherwise, some format conversion will be applied.</p> <p>If you wish to reset the decoded format to that of the original audio file, you can specify an invalid <i>format</i>.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#audioFormat">audioFormat</a>().</p> <!-- @@@setAudioFormat --> <!-- $$$setSourceDevice[overload1]$$$setSourceDeviceQIODevice* --> <h3 class="fn" id="setSourceDevice"><a name="setSourceDevice"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">setSourceDevice</span>(<span class="type">QIODevice</span> *<i>device</i>)</h3> <p>Sets the current source to <i>device</i>. Changing the source will stop any current decoding and discard any buffers.</p> <p>Sources are exclusive, so only one can be set.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#sourceDevice">sourceDevice</a>().</p> <!-- @@@setSourceDevice --> <!-- $$$setSourceFilename[overload1]$$$setSourceFilenameconstQString& --> <h3 class="fn" id="setSourceFilename"><a name="setSourceFilename"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">setSourceFilename</span>(const <span class="type">QString</span> &<i>fileName</i>)</h3> <p>Sets the current source to <i>fileName</i>. Changing the source will stop any current decoding and discard any buffers.</p> <p>Sources are exclusive, so only one can be set.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#sourceFilename">sourceFilename</a>().</p> <!-- @@@setSourceFilename --> <!-- $$$sourceChanged[overload1]$$$sourceChanged --> <h3 class="fn" id="sourceChanged"><a name="sourceChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">sourceChanged</span>()</h3> <p>Signals that the current source of the decoder has changed.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#sourceFilename">sourceFilename</a>() and <a href="qaudiodecodercontrol.html#sourceDevice">sourceDevice</a>().</p> <!-- @@@sourceChanged --> <!-- $$$sourceDevice[overload1]$$$sourceDevice --> <h3 class="fn" id="sourceDevice"><a name="sourceDevice"></a><code>[pure virtual] </code><span class="type">QIODevice</span> *QAudioDecoderControl::<span class="name">sourceDevice</span>() const</h3> <p>Returns the current media source QIODevice, or 0 if none (or a file).</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#setSourceDevice">setSourceDevice</a>().</p> <!-- @@@sourceDevice --> <!-- $$$sourceFilename[overload1]$$$sourceFilename --> <h3 class="fn" id="sourceFilename"><a name="sourceFilename"></a><code>[pure virtual] </code><span class="type">QString</span> QAudioDecoderControl::<span class="name">sourceFilename</span>() const</h3> <p>Returns the current media source filename, or a null QString if none (or a device)</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#setSourceFilename">setSourceFilename</a>().</p> <!-- @@@sourceFilename --> <!-- $$$start[overload1]$$$start --> <h3 class="fn" id="start"><a name="start"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">start</span>()</h3> <p>Starts decoding the current media.</p> <p>If successful the player control will immediately enter the <a href="qaudiodecoder.html#State-enum">decoding</a> state.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#state">state</a>() and <a href="qaudiodecodercontrol.html#read">read</a>().</p> <!-- @@@start --> <!-- $$$state[overload1]$$$state --> <h3 class="fn" id="state"><a name="state"></a><code>[pure virtual] </code><span class="type"><a href="qaudiodecoder.html#State-enum">QAudioDecoder::State</a></span> QAudioDecoderControl::<span class="name">state</span>() const</h3> <p>Returns the state of a player control.</p> <!-- @@@state --> <!-- $$$stateChanged[overload1]$$$stateChangedQAudioDecoder::State --> <h3 class="fn" id="stateChanged"><a name="stateChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">stateChanged</span>(<span class="type"><a href="qaudiodecoder.html#State-enum">QAudioDecoder::State</a></span> <i>newState</i>)</h3> <p>Signals that the state of a player control has changed to <i>newState</i>.</p> <p><b>See also </b><a href="qaudiodecodercontrol.html#state">state</a>().</p> <!-- @@@stateChanged --> <!-- $$$stop[overload1]$$$stop --> <h3 class="fn" id="stop"><a name="stop"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">stop</span>()</h3> <p>Stops playback of the current media and discards any buffers.</p> <p>If successful the player control will immediately enter the <a href="qaudiodecoder.html#State-enum">stopped</a> state.</p> <!-- @@@stop --> </div> <div class="macros"> <h2>Macro Documentation</h2> <!-- $$$QAudioDecoderControl_iid[overload1]$$$QAudioDecoderControl_iid --> <h3 class="fn" id="QAudioDecoderControl_iid"><a name="QAudioDecoderControl_iid"></a><span class="name">QAudioDecoderControl_iid</span></h3> <p><code>org.qt-project.qt.audiodecodercontrol/5.0</code></p> <p>Defines the interface name of the <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> class.</p> <!-- @@@QAudioDecoderControl_iid --> </div> </div> </div> </div> </div> </div> <div class="footer"> <p> <acronym title="Copyright">©</acronym> 2019 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.<br/> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br/> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. </p> </div> </body> </html>