<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # QAudioOutput Class Reference ## [[QtMultimedia](index.htm) module] 該QAudioOutput類提供用于發送音頻數據到音頻輸出設備的接口。[More...](#details) 繼承[QObject](qobject.html)。 ### Methods * `__init__ (self, QAudioFormat?format?=?QAudioFormat(), QObject?parent?=?None)` * `__init__ (self, QAudioDeviceInfo?audioDevice, QAudioFormat?format?=?QAudioFormat(), QObject?parent?=?None)` * `int bufferSize (self)` * `int bytesFree (self)` * `int elapsedUSecs (self)` * `QAudio.Error error (self)` * `QAudioFormat format (self)` * `int notifyInterval (self)` * `int periodSize (self)` * `int processedUSecs (self)` * `reset (self)` * `resume (self)` * `setBufferSize (self, int?bytes)` * `setNotifyInterval (self, int?milliSeconds)` * `start (self, QIODevice?device)` * `QIODevice start (self)` * `QAudio.State state (self)` * `stop (self)` * `suspend (self)` ### Qt Signals * `void notify ()` * `void stateChanged (QAudio::State)` * * * ## Detailed Description 該QAudioOutput類提供用于發送音頻數據到音頻輸出設備的接口。 可以構造與系統的音頻輸出[default audio output device](qaudiodeviceinfo.html#defaultOutputDevice)。它也可能與特定的創建QAudioOutput[QAudioDeviceInfo](qaudiodeviceinfo.html)。當您創建音頻輸出,你也應該送的[QAudioFormat](qaudioformat.html)要用于再現(見[QAudioFormat](qaudioformat.html)類描述詳情) 。 要播放的文件: 開始播放音頻流是簡單地調用的問題[start](qaudiooutput.html#start)( )與[QIODevice](qiodevice.html)。 QAudioOutput然后將它拿來從IO設備所需要的數據。所以回放音頻文件就是這么簡單: ``` [QFile](qfile.html) inputFile; // class member. QAudioOutput *audioOutput; // class member. ... void startPlaying() { inputFile.setFileName("/tmp/test.raw"); inputFile.open([QIODevice](qiodevice.html).ReadOnly); [QAudioFormat](qaudioformat.html) format; // Set up the format, eg. format.setFrequency(8000); format.setChannels(1); format.setSampleSize(8); format.setCodec("audio/pcm"); format.setByteOrder([QAudioFormat](qaudioformat.html).LittleEndian); format.setSampleType([QAudioFormat](qaudioformat.html).UnSignedInt); [QAudioDeviceInfo](qaudiodeviceinfo.html) info([QAudioDeviceInfo](qaudiodeviceinfo.html).defaultOutputDevice()); if (!info.isFormatSupported(format)) { qWarning()<<"raw audio format not supported by backend, cannot play audio."; return; } audioOutput = new QAudioOutput(format, this); connect(audioOutput,SIGNAL(stateChanged([QAudio](qaudio.html).State)),SLOT(finishedPlaying([QAudio](qaudio.html).State))); audioOutput->start(&inputFile); } ``` 該文件將開始播放假設音響系統和輸出設備支持它。如果您運行的運氣了,檢查是怎么回事的[error](qaudiooutput.html#error)()函數。 之后,該文件已經播放完畢,我們需要停止設備: ``` void finishedPlaying([QAudio](qaudio.html).State state) { if (state == [QAudio](qaudio.html).IdleState) { audioOutput->stop(); inputFile.close(); delete audioOutput; } } ``` 在任何給定時間, QAudioOutput將在四種狀態之一:活動,暫停,停止或閒置。這些狀態是由所述[QAudio.State](qaudio.html#State-enum)枚舉。狀態的改變是通過報導[stateChanged](qaudiooutput.html#stateChanged)()信號。你可以使用這個信號,例如,更新應用程序的圖形用戶界面,在這里平凡的例子被改變的狀態`play/pause`按鈕。你直接請求的狀態與變化[suspend](qaudiooutput.html#suspend)( )[stop](qaudiooutput.html#stop)( )[reset](qaudiooutput.html#reset)( )[resume](qaudiooutput.html#resume)()和[start](qaudiooutput.html#start)( ) 。 當流播放過程中,你可以設置一個通知的時間間隔,單位為毫秒與[setNotifyInterval](qaudiooutput.html#setNotifyInterval)( ) 。這個時間間隔指定的兩個排放之間的時間[notify](qaudiooutput.html#notify)()信號。這是相對于數據流中的位置,即,如果QAudioOutput是在SuspendedState或IdleState ,本[notify](qaudiooutput.html#notify)()信號不被發射。一個典型的用例是將一個更新[slider](qslider.html)允許尋求流中。如果你想的時候,因為開始播放,無論哪種狀態下音頻輸出一直在,[elapsedUSecs](qaudiooutput.html#elapsedUSecs)( )的功能是給你的。 如果出現錯誤,你可以取[error type](qaudio.html#Error-enum)與[error](qaudiooutput.html#error)()函數。請參閱[QAudio.Error](qaudio.html#Error-enum)枚舉為所報告可能出現的錯誤的描述。當遇到錯誤時,狀態更改為[QAudio.StoppedState](qaudio.html#State-enum)。您可以通過連接到檢查錯誤[stateChanged](qaudiooutput.html#stateChanged)( )信號: ``` void stateChanged([QAudio](qaudio.html).State newState) { switch (newState) { case [QAudio](qaudio.html).StoppedState: if (audioOutput->error() != [QAudio](qaudio.html).NoError) { // Perform error handling } else { // Normal stop } break; ``` * * * ## Method Documentation ``` QAudioOutput.__init__ (self, QAudioFormat?format?=?QAudioFormat(), QObject?parent?=?None) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個新的音頻輸出,并將它附加到_parent_。默認的音頻輸出裝置是用來與輸出_format_參數。 ``` QAudioOutput.__init__ (self, QAudioDeviceInfo?audioDevice, QAudioFormat?format?=?QAudioFormat(), QObject?parent?=?None) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個新的音頻輸出,并將它附加到_parent_。通過引用的設備_audioDevice_用于與輸出_format_參數。 ``` int QAudioOutput.bufferSize (self) ``` 返回以字節為單位的音頻緩沖器的大小。 如果之前調用[start](qaudiooutput.html#start)( ) ,返回平臺的默認值。如果之前調用[start](qaudiooutput.html#start)(),但[setBufferSize](qaudiooutput.html#setBufferSize)( )之前被調用,返回值被設置[setBufferSize](qaudiooutput.html#setBufferSize)( ) 。如果所謂的后[start](qaudiooutput.html#start)()時,返回所使用的實際的緩沖區大小。這可能不是通過預先設定的[setBufferSize](qaudiooutput.html#setBufferSize)( ) 。 **See also** [setBufferSize](qaudiooutput.html#setBufferSize)( ) 。 ``` int QAudioOutput.bytesFree (self) ``` 返回以字節為單位的可用空間在音頻緩沖器。 注:返回值是唯一有效的,而在[QAudio.ActiveState](qaudio.html#State-enum) or [QAudio.IdleState](qaudio.html#State-enum)狀態,否則返回零。 ``` int QAudioOutput.elapsedUSecs (self) ``` 返回微秒,因為[start](qaudiooutput.html#start)( )被調用,包括時間,空閒和待機狀態。 ``` QAudio.Error QAudioOutput.error (self) ``` [ 返回的錯誤狀態。 ](qaudio.html#Error-enum) ``` QAudioFormat QAudioOutput.format (self) ``` [](qaudioformat.html) [返回](qaudioformat.html)[QAudioFormat](qaudioformat.html)被使用。 ``` int QAudioOutput.notifyInterval (self) ``` 返回以毫秒為單位的通知時間間隔。 **See also** [setNotifyInterval](qaudiooutput.html#setNotifyInterval)( ) 。 ``` int QAudioOutput.periodSize (self) ``` 返回以字節為單位的周期大小。 注:這是在字節寫推薦大小。 ``` int QAudioOutput.processedUSecs (self) ``` 返回由類處理后的音頻數據的量,因為[start](qaudiooutput.html#start)( )被調用以微秒為單位。 注意:播放的音頻數據的量可以通過減去音頻數據仍然在系統中的音頻緩沖器的微秒來決定。 ``` [long](index.htm#qint64-typedef) bytesInBuffer = bufferSize() - bytesFree(); [long](index.htm#qint64-typedef) usInBuffer = ([long](index.htm#qint64-typedef))(1000000) * bytesInBuffer / ( channels() * sampleSize() / 8 ) / frequency(); [long](index.htm#qint64-typedef) usPlayed = processedUSecs() - usInBuffer; ``` ``` QAudioOutput.reset (self) ``` 滴在緩沖區所有的音頻數據,緩沖區復位到零。 ``` QAudioOutput.resume (self) ``` 恢復后處理音頻數據[suspend](qaudiooutput.html#suspend)( ) 。 Sets [error](qaudiooutput.html#error)()來[QAudio.NoError](qaudio.html#Error-enum)。套[state](qaudiooutput.html#state)()來[QAudio.ActiveState](qaudio.html#State-enum)如果您以前調用start ([QIODevice](qiodevice.html)*)。套[state](qaudiooutput.html#state)()來[QAudio.IdleState](qaudio.html#State-enum)如果您以前叫[start](qaudiooutput.html#start)( ) 。發射[stateChanged](qaudiooutput.html#stateChanged)()信號。 注:信號總是會執行的簡歷( )函數的過程中發出的。 ``` QAudioOutput.setBufferSize (self, int?bytes) ``` 設置音頻緩沖區的大小為_value_以字節為單位。 注:此功能可以在任何時候之前調用[start](qaudiooutput.html#start)( ) ,調用此之后將被忽略[start](qaudiooutput.html#start)( ) 。它不應該被假定緩沖區的大小設置為實際使用的緩沖區大小,調用[bufferSize](qaudiooutput.html#bufferSize)()后隨時[start](qaudiooutput.html#start)()將返回所用的實際的緩沖區大小。 **See also** [bufferSize](qaudiooutput.html#bufferSize)( ) 。 ``` QAudioOutput.setNotifyInterval (self, int?milliSeconds) ``` 設置的時間間隔[notify](qaudiooutput.html#notify)()信號被發射。這是基于_ms_處理不實際的實時音頻數據。定時器的最小分辨率為特定平臺和值應進行檢查[notifyInterval](qaudiooutput.html#notifyInterval)( )確認正在使用的實際值。 **See also** [notifyInterval](qaudiooutput.html#notifyInterval)( ) 。 ``` QAudioOutput.start (self, QIODevice?device) ``` 使用_device_作為[QIODevice](qiodevice.html)來傳輸數據。傳遞[QIODevice](qiodevice.html)允許數據被無任何額外的代碼傳輸。所有需要的是打開[QIODevice](qiodevice.html)。 如果能夠成功地輸出音頻數據的系統音頻設備的[state](qaudiooutput.html#state)( )被設置為[QAudio.ActiveState](qaudio.html#State-enum),[error](qaudiooutput.html#error)( )被設置為[QAudio.NoError](qaudio.html#Error-enum)和[stateChanged](qaudiooutput.html#stateChanged)()信號被發射。 如果在這個過程中發生問題的[error](qaudiooutput.html#error)( )被設置為[QAudio.OpenError](qaudio.html#Error-enum),[state](qaudiooutput.html#state)( )被設置為[QAudio.StoppedState](qaudio.html#State-enum)和[stateChanged](qaudiooutput.html#stateChanged)()信號被發射。 在任一情況下,本[stateChanged](qaudiooutput.html#stateChanged)( )信號可以執行start()函數或開始后異步( )返回給調用者過程中,可以同步發出。 **See also** [QIODevice](qiodevice.html)。 ``` QIODevice QAudioOutput.start (self) ``` [](qiodevice.html) [返回一個指針](qiodevice.html)[QIODevice](qiodevice.html)被使用來處理數據傳輸。這[QIODevice](qiodevice.html)可用于直接寫()的音頻數據。 如果能夠訪問該系統音頻設備的[state](qaudiooutput.html#state)( )被設置為[QAudio.IdleState](qaudio.html#State-enum),[error](qaudiooutput.html#error)( )被設置為[QAudio.NoError](qaudio.html#Error-enum)和[stateChanged](qaudiooutput.html#stateChanged)()信號被發射。 如果在這個過程中發生問題的[error](qaudiooutput.html#error)( )被設置為[QAudio.OpenError](qaudio.html#Error-enum),[state](qaudiooutput.html#state)( )被設置為[QAudio.StoppedState](qaudio.html#State-enum)和[stateChanged](qaudiooutput.html#stateChanged)()信號被發射。 在任一情況下,本[stateChanged](qaudiooutput.html#stateChanged)( )信號可以執行的過程中,可以同步發出[start](qaudiooutput.html#start)( )函數或異步后[start](qaudiooutput.html#start)( )返回給調用者。 **See also** [QIODevice](qiodevice.html)。 ``` QAudio.State QAudioOutput.state (self) ``` [ 返回音頻處理的狀態。 ``` QAudioOutput.stop (self) ``` 停止音頻輸出,從系統資源分離。 ](qaudio.html#State-enum) [Sets](qaudio.html#State-enum) [error](qaudiooutput.html#error)()來[QAudio.NoError](qaudio.html#Error-enum),[state](qaudiooutput.html#state)()來[QAudio.StoppedState](qaudio.html#State-enum)并放出[stateChanged](qaudiooutput.html#stateChanged)()信號。 ``` QAudioOutput.suspend (self) ``` 停止處理的音頻數據,保存緩沖音頻數據。 Sets [error](qaudiooutput.html#error)()來[QAudio.NoError](qaudio.html#Error-enum),[state](qaudiooutput.html#state)()來[QAudio.SuspendedState](qaudio.html#State-enum)并放出[stateChanged](qaudiooutput.html#stateChanged)()信號。 * * * ## Qt Signal Documentation ``` void notify () ``` 這是該信號的默認超載。 當音頻數據x毫秒已被處理的時間間隔由setNotifyInterval ( x)的設置這個信號被發射。 ``` void stateChanged (QAudio::State) ``` 這是該信號的默認超載。 這個信號被發射時,該設備_state_已經改變。這是音頻輸出的當前狀態。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看