在HGE裏添加音樂,並實時控制音量

    在HGE裏添加音頻的方法網上很多地方都有寫過,HGE的官方例子裏也有。但是有了音樂後怎麼控制呢?我摸索了下,用的是這種方法:

    首先,在全局申明中定義以下三個變量:

         HEFFECT backMusic;

         HCHANNEL backMusicChannel;

         int volume;//音量

    然後在主函數WinMain的System_Initiate()之後添加以下語句:

         backMusic = hge->Effect_Load("yumantang.mp3");//將電腦中的音頻文件關聯進來,支持的格式有WAV, MP3, MP2, MP1OGG

         backMusicChannel = hge->Effect_PlayEx(backMusic,volume,0,90.0f,true);//開始播放音頻,並將聲道存在backMusicChannel中以便後續對其進行操作。Effect_PlayEx函數的五個參數分別爲音頻資源(HEFFECT)、音量(0~100)、左右聲道音量分配(-100~100)、播放頻率、是否循環等。

         hge->Channel_SetVolume(backMusicChannel,volume);//設置音量。雖然上面的函數已經設置了音量,但是這裏還是重新設置一下。因爲不知道爲什麼,我發現上面那個函數對音量的控制不是很好。不管我怎麼改volume,初始音量貌似都是同一個值。

    最後,在FrameFunc()中添加對音量的實時控制語句:

         if( (hge->Input_GetKeyState(HGEK_ADD) || hge->Input_GetKeyState(HGEK_EQUALS)) && volume<100 )

         {

             volume++;

             hge->Channel_SetVolume(backMusicChannel,volume);

         }

        if( (hge->Input_GetKeyState(HGEK_SUBTRACT) || hge->Input_GetKeyState(HGEK_MINUS)) && volume>0 )

        {

             volume--;

             hge->Channel_SetVolume(backMusicChannel,volume);

        }

    這樣,每當用戶按小鍵盤上的+、-,或主鍵盤上的=、-時音量就會隨之改變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章