周雨彤
摘 要
計算機上的音樂播放軟件,可以方便的滿足人們對于音樂播放的各種功能。同時,桌面小精靈程良好的人機交互體驗,得到了很多用戶的肯定和青睞。本文設計一款基于桌面小精靈的音樂播放軟件,結合音樂播放器和桌面小精靈程序的優點,最大限度地滿足人們對于音樂休閑的多樣性和便利性。
【關鍵詞】音樂播放軟件 播放器 設計
1 系統功能模塊設計
本軟件實現如下能模塊,桌面小精靈模塊,音樂播放器模塊和托盤模塊。
桌面小精靈功能模塊實現一個能在桌面跑動的動態卡通形象,使桌面小精靈能夠被用戶挪到想要的地方,拖拽時,桌面小精靈動畫不能停止,拖拽不帶重影。
音樂播放器功能模塊包括音樂播放和音樂列表兩個子模塊:
音樂播放子模塊需要實現以下功能:播放,暫停,停止,音量調節,播放進度調整。
音樂列表子模塊實現:建立音樂列表,能正常取出上一首和下一首音樂開始播放,若到達列表頭尾,則循環轉到尾頭開始播放。顯示和儲存分離,音樂列表對話框能隱藏,移動時跟隨小精靈。音樂列表接受文件拖拽,雙擊條目則可以播放該條目的音樂。
托盤功能模塊實現:托盤圖標可以顯示托盤消息,雙擊托盤圖標能夠顯示已隱藏的桌面小精靈。右鍵托盤圖標能夠彈出菜單。并且,桌面小精靈應該始終在最前,以保障用戶能夠隨時使用。
2 系統功能具體實現
2.1 桌面精靈的實現原理和步驟
實現桌面精靈的步驟如下:
(1)獲取桌面窗口句柄:DeskDC= GetDC(GetDesktopWindow());
(2)創建一個內存位圖,將桌面精靈的卡通形象存入到此位圖中,為此,可以封裝一個方法:
Void MainDlg::SavebackElfin(BKCanvas TCanvas){//內存位圖中的畫布對象
w:integer; //畫布對象的寬度
h:integer;//畫布對象的高度
x:integer;//保存的x坐標
y:integer;}//保存的y坐標
(3)將卡通精靈拷貝到桌面的繪圖區域;
(4)將第二步生成的內存位圖拷貝到桌面位置,完成一幀動畫的顯示。循環實現1-4步,實現桌面小精靈的連續移動畫面。
2.2 音樂播放器功能模塊的實現
音樂播放可以使用很多技術,如playsound,MCI,DirectX等,本文采用了功能強大且易用的MCI( Media Control Interface)媒體控制接口。MCI是向基于Windows操作系統的應用程序,它提供了高層次的控制媒體設備接口的能力。本文實現的CDeskMP3類對MCI的音樂播放功能進行了封裝,實現了音樂播放器所需的各種功能。
class CDeskMp3
{
public:
CDeskMp3();
CDeskMp3(CString path);
void LoadMp3(CString path);
void Play();
void Play(int start);
void Play(int start,int end);
void PlayLoop();
void Pause();
void Stop();
void Replay();
void Close();
void SetVolume(int vol);
int GetPresentPos();
int GetMusicLength();
private:
DWORD dwReturn;
DWORD m_dwLength;
MCIDEVICEID m_deviceId;
bool isopened;
UINT flag;
};
2.3 托盤功能模塊的實現
托盤功能實現具體如下:托盤圖標在主窗口中創建,使用托盤結構體NOTIFYICONDATA 來創建對象nid;加入托盤時定義好托盤屬性:標志位,消息名稱;加載圖標以及托盤名,用Shell_NotifyIcon函數把托盤加入托盤區;同時在托盤釋放的時候需要將托盤從托盤區刪除。
void CYourLandDlg::AddTray()
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage = WM_SHOWTASK;
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
tcscpy(nid.szTip, TEXT("我是一個托盤圖標"));
Shell_NotifyIcon(NIM_ADD,&nid);
}
3 結束語
本文主要實現了一個基于桌面精靈的桌面卡通音樂播放器,將桌面精靈活潑可愛的特點融入音樂播放器中,使得用戶在使用音樂播放器播放音樂時更加方便并且休閑放松。
參考文獻
[1]綠色.活靈活現的桌面精靈[J].少年電腦世界,2010(02):41-42.
[2]王秀梅.Delphi制作升級精靈程序[J].黑龍江科技信息,2010(18):7-67.
[3]周淑華.多媒體播放器通用算法設計與實現[J].電腦編程技巧與維護,2016(21):93-94.
[4]陳忠.在Visual C++中使用托盤圖標功能編寫計算機定時關機程序[J].電腦編程技巧與維護,2003(08):84-85.