1. 程式人生 > 其它 >JUCE學習筆記(一):創造一個音訊播放器

JUCE學習筆記(一):創造一個音訊播放器

Audio Formats:

Juce提供了一系列的工具來讀寫多種格式的音訊檔案。本例中會用到一下類

AudioFormatManager:這個類包含了一份音訊檔案格式的list,並且可以創造合適的物件來從這些格式中讀取聲音資料

AudioFormatReader:這個類處理底層音訊檔案讀取的操作,並且讓我們可以通過一致的格式讀取音訊(如浮動值的陣列)。當AudioFormatManager物件被要求開啟一個特定檔案時,會建立這個類的例項。

AudioFormatReaderSource:這是AudioSource類的一個子類。它可以從AudioFormatReader物件中讀取音訊資料,並通過其getNextAudioBlock()函式渲染音訊

AudioTransportSource:另一個AudioSource的子類,可以控制一個AudioFormatReaderSource物件的播放。這種控制包括開始和停止AudioFormatReaderSource物件的播放。它還可以進行取樣率轉換,以及提前緩衝音訊。

WAV和AIFF格式在各平臺適用,其他檔案格式取決於平臺和Projucer專案中juce_audio_formats模組中啟用的選項

State

    enum TransportState
    {
        Stopped,
        Starting,
        Playing,
        Stopping
    };

Changing States

 1     void changeState (TransportState newState)
 2     {
 3         if (state != newState)
 4         {
 5             state = newState;
 6  
 7             switch (state)
 8             {
 9                 case Stopped:                           // [3]
10                     stopButton.setEnabled (false
); 11 playButton.setEnabled (true); 12 transportSource.setPosition (0.0); 13 break; 14 15 case Starting: // [4] 16 playButton.setEnabled (false); 17 transportSource.start(); 18 break; 19 20 case Playing: // [5] 21 stopButton.setEnabled (true); 22 break; 23 24 case Stopping: // [6] 25 transportSource.stop(); 26 break; 27 } 28 } 29 }
changeState