Simple2D-18(音樂播放器)使用 bass 音頻庫


 

BASS 簡介


 

  BASS是一個在多個平台上用於軟件的音頻庫。其目的是為開發人員提供功能強大且高效的示例流(MP3,MP2,MP1,OGG,WAV,AIFF),MOD 音樂(XM,IT,S3M,MOD ,MTM,UMX),MO3 音樂(MP3 / OGG壓縮MOD)和錄音功能。提供了 C / C ++,Delphi 和 Visual Basic API,適用於AndroidiOSWindows Store / PhoneWinCE 和 ARM Linux 平台。

  BASS 對於非商業用途是免費的。如果您是非商業實體(例如個人),並且您沒有從您的產品(通過銷售,廣告等)賺錢,那么您可以免費使用BASS。

 

  你可以在這個鏈接 http://www.un4seen.com 下載 BASS:

 

  這次的播放器就是使用 BASS 播放音頻文件,下載 BASS 后將文件 bass.lib、bass.dll 和 bass.h 拷貝到項目即可。

 

使用 BASS


 

  配置好並引入頭文件 bass.h 后,通過以下代碼播放音頻文件:

 

        BASS_Init(-1, 44100, 0, 0, nullptr);

        HSTREAM stream = BASS_StreamCreateFile(FALSE, "filename", 0, 0, 0);
        BASS_ChannelPlay(stream, FALSE);

        /* 播放結束 */
        //BASS_StreamFree(stream);

 

 

  進度調節:

        /* 獲取播放進度 */
        double pos = BASS_ChannelBytes2Seconds(stream, BASS_ChannelGetPosition(stream, BASS_POS_BYTE));

        /* 設置播放進度 */
        BASS_ChannelSetPosition(stream, BASS_ChannelSeconds2Bytes(stream, pos), BASS_POS_BYTE);

 

  音量調節:

        /* 設置 stream 音量,0 - 10000 */
        BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 200);

        /* 獲取 stream 音量,0 - 10000 */
        BASS_GetConfig(BASS_CONFIG_GVOL_STREAM);

 

        /* 獲取系統音量 */
        float volume = BASS_GetVolume();

        /* 設置系統音量 */
        BASS_SetVolume(volume);

 

  獲取頻譜數據:

        static float fft[128];
        BASS_ChannelGetData(stream, fft, BASS_DATA_FFT256);

 

  獲取播放狀態:

        DWORD result = BASS_ChannelIsActive(stream);
        switch ( result ) {
        case BASS_ACTIVE_PAUSED:  return PS_Paused;
        case BASS_ACTIVE_PLAYING: return PS_Playing;
        case BASS_ACTIVE_STOPPED: return PS_Stopped;
        }

  以上是這次播放器用到的 BASS API,詳細內容可以查看 BASS 幫助文檔,也可以閱讀 BASS 演示源碼。

 

BASS 封裝


 

  將 BASS API 封裝成一個類,從而管理所有的音頻文件。可以設計一個單例類 SoundManager,以便在任何位置實現音頻文件的管理。由於播放器不需要復雜的功能,所以將上面的 BASS API 進行添加到單例類中即可。

  詳細內容請參考源碼。

 

 

  源碼下載:Simple2D-14.rar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM