日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一款音频播放软件设计文档,欢迎提出宝贵

發(fā)布時(shí)間:2024/8/1 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一款音频播放软件设计文档,欢迎提出宝贵 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://files.cnblogs.com/ququer/TWGPlayer.rar

3 系統(tǒng)分析

3.1系統(tǒng)概述

3.1.1概述

本系統(tǒng)是一款音頻播放軟件,盡量能播放各種常用的音樂格式,它要有漂亮的可定制的界面,高效的性能,簡(jiǎn)單的操作,絢麗的效果,能帶用戶進(jìn)入一個(gè)完美的音樂空間。它是一款集播放、音效、歌詞等多種功能于一身的音頻播放軟件。擁有自主研發(fā)的音頻引擎,使用DirectSound,具有資源占用低、運(yùn)行效率高、擴(kuò)展能力強(qiáng)等優(yōu)點(diǎn)。支持MP3/mp3PRO、AAC/AAC+、M4A/MP4、WMA、OGG、WAVE等音頻格式。支持同步歌詞滾動(dòng)顯示和拖動(dòng)定位播放,并且支持在線歌詞搜索和歌詞編輯功能。支持多播放列表,支持多種視覺效果,同時(shí)具有水晶界面、磁性窗口、半透明/淡入淡出窗口、窗口陰影、任務(wù)欄圖標(biāo)、自定義快捷鍵、信息滾動(dòng)、菜單功能提示等功能。

3.2需求分析

3.2.1播放功能
3.2.1.1音頻:

能解碼播放各種常見格式的本地音頻文件,如mp3、AAC、AAC+、WMA、WAV、OGG等。并提供擴(kuò)展功能,使用DirectSound加速播放,支持對(duì)各種格式的音頻的轉(zhuǎn)換。

3.2.1.2均衡器:

10波段均衡器,多級(jí)杜比環(huán)繞,常見音效的設(shè)置。

3.2.1.3播放列表:

列表插刪改,文件插刪改,添加文件夾,添加文件,本地搜索,刪除(全部刪除,錯(cuò)誤文件刪除,物理刪除),排序(按標(biāo)題、文件名、專輯名、文件長(zhǎng)度、隨機(jī)等),查找(定位,查找歌曲),編輯(剪貼復(fù)制粘貼,移動(dòng)到列表,復(fù)制到列表,全選,不選,反選),模式(單曲,單曲循環(huán),順序,循環(huán),隨機(jī)),文件屬性。

3.2.1.4在線播放功能:

提供正在下載播放,廣播收聽。

3.2.1.5播放:

播放,暫停,停止,上一首,下一首,靜音,音量調(diào)節(jié),播放位置調(diào)整。

3.2.2界面功能
3.2.2.1視覺效果:

頻譜分析,示波顯示,夢(mèng)幻星空,專輯封面,全屏顯示。

3.2.2.2界面效果:

音頻信息的滾動(dòng)顯示,當(dāng)前播放時(shí)間,滾動(dòng)軸效果。

3.2.2.3皮膚主題:

換膚功能(背景更換,配色更換,主界面透明[毛玻璃])。

3.2.2.4歌詞走馬燈效果:

底紋(紋理),陰影,歌詞手動(dòng)調(diào)節(jié),歌詞編輯,歌譜下載,歌詞下載,字體設(shè)置,主題設(shè)置。

3.2.3下載功能
3.2.3.1歌曲下載管理:

多線程下載,下載進(jìn)度,下載速度,暫停,開始。

3.2.3.2音樂窗體:

提供在線音樂,在線廣播。

3.2.3.3歌詞下載:

歌詞搜索,文件關(guān)聯(lián)。

3.2.4其他功能
3.2.4.1快捷鍵:

快捷鍵設(shè)置。

3.2.4.2播放器設(shè)置窗口:

各種設(shè)置。

3.3系統(tǒng)設(shè)計(jì)約束

3.3.1需求約束
3.3.1.1規(guī)則約束

本系統(tǒng)的編碼應(yīng)遵循匈牙利標(biāo)記法命名[1],開發(fā)流程應(yīng)符合軟件開發(fā)中的各種約束[1]

3.3.1.2環(huán)境約束

表3-1開發(fā)環(huán)境約束

類別

標(biāo)準(zhǔn)配置

最低配置

計(jì)算機(jī)硬件

2G內(nèi)存,320G硬盤

內(nèi)存128M,硬盤80G

軟件

Win7,winxp3,VS2008

win2000以上

網(wǎng)絡(luò)通信

0.5M帶寬

無(wú)

其它

無(wú)

無(wú)

表3-2運(yùn)行環(huán)境約束

類別

標(biāo)準(zhǔn)配置

最低配置

計(jì)算機(jī)硬件

2G內(nèi)存,320G硬盤

內(nèi)存128M,硬盤80G

軟件

Win7,winxp3,win2000

win2000以上

網(wǎng)絡(luò)通信

0.5M帶寬

無(wú)

其它

無(wú)

無(wú)

3.3.1.3軟件質(zhì)量的約束

(1) 健壯性約束:

能對(duì)數(shù)據(jù)文件(列表、皮膚xml、用戶自定義數(shù)據(jù)等)的錯(cuò)誤進(jìn)行識(shí)別和自我修復(fù)。

(2) 兼容性約束:

能在常用xp和win7下實(shí)現(xiàn)所有功能。

(3)效率(性能)約束:

常駐內(nèi)存級(jí)別要求,內(nèi)存<=25M,磁盤<=15M,性能要求為高性能。

(4)可維護(hù)性約束:

軟件架構(gòu)應(yīng)具有更好的擴(kuò)展性,代碼優(yōu)化要求高。

(5)可測(cè)試性約束:

能對(duì)類,函數(shù),模塊的接口編寫先行測(cè)試。

(6)編碼約束:

名字、注釋、代碼格式的一致性,類接口約定的一致性,處理基本錯(cuò)誤條件。

(7)易用性約束:

軟件具有人性化界面設(shè)計(jì),簡(jiǎn)單易用。

(8)可擴(kuò)展性約束:

軟件應(yīng)該具有可擴(kuò)展性:如音頻解碼格式的擴(kuò)展,軟件定制信息擴(kuò)展等。

(9)安全性約束:

軟件應(yīng)安全運(yùn)行,不能修改破壞用戶系統(tǒng),并對(duì)自身安全提供保護(hù)(如火種注入、單模塊文件恢復(fù)等策略)。

3.3.2隱含約束
3.3.2.1用戶受教育程度約束:

假設(shè)一般用戶受教育程度為初中以上水平。

3.3.2.2用戶計(jì)算機(jī)技能約束:

假設(shè)一般用戶計(jì)算機(jī)技能比較低,只會(huì)使用操作簡(jiǎn)單的軟件。

3.3.2.3用戶計(jì)算機(jī)軟件硬件約束:

請(qǐng)參看環(huán)境約束。

4 系統(tǒng)設(shè)計(jì)

4.1設(shè)計(jì)策略

4.1.1擴(kuò)展策略

(1) 為了方便音頻解碼格式的擴(kuò)展,本系統(tǒng)對(duì)音頻解碼模塊采用多態(tài)策略。

(2) 對(duì)以后可能添加的各種視覺效果提供渲染接口。

(3) 設(shè)計(jì)易于擴(kuò)展的主題模塊和設(shè)置模塊。

(4) 為web頁(yè)面提供更多接口,使web站點(diǎn)更易擴(kuò)展。

4.1.2復(fù)用策略

(1) 關(guān)于界面引擎考慮到代碼復(fù)用。

(2) 對(duì)各種控件自繪基類考慮封裝,使之有利于代碼復(fù)用。

(3) 對(duì)于一些下載模塊,解碼模塊和頻譜模塊等進(jìn)行封裝,有些作為dll單獨(dú)編譯,可用于以后代碼的復(fù)用。

4.2總體設(shè)計(jì)

4.2.1總體架構(gòu)
4.2.1.1架構(gòu)規(guī)格書

表4-1 架構(gòu)規(guī)格書

構(gòu)造塊

責(zé)任

負(fù)責(zé)需求

實(shí)現(xiàn)方法(簡(jiǎn)述)

可用那個(gè)模塊

通信規(guī)則

解碼模塊

音頻解碼,實(shí)現(xiàn)對(duì)各種音頻文件的解碼播放。

3.2.1.1

文件解碼(可用mpg12或公開解碼庫(kù)實(shí)現(xiàn))播放用DirectSound處理。

無(wú)

無(wú)

頻譜模塊

頻譜分析,實(shí)現(xiàn)各種視覺效果。

3.2.2.1

FFT,gdi繪圖等。

無(wú)

無(wú)

播放模塊

播放,暫停等,并協(xié)調(diào)處理解碼模塊和頻譜模塊的相關(guān)操作。

3.2.1.5

可用事件,多線程,線程同步等實(shí)現(xiàn)。

解碼模塊,頻譜模塊。

has-a解碼模塊。

has-a頻譜模塊。

界面模塊

毛玻璃界面實(shí)現(xiàn),并負(fù)責(zé)界面主題的更換,是其他窗口類的基類。

3.2.2.2

毛玻璃效果實(shí)現(xiàn)。

播放模塊,主題模塊,列表模塊,Http下載模塊。

has--a播放模塊。

has-a主題模塊。

has-a列表模塊。

has-a Http下載模塊。

主題模塊

界面主題包的管理。

3.2.2.3

?

無(wú)

無(wú)

Xml模塊

Xml文件的管理,對(duì)所有數(shù)據(jù)的讀取處理工作。

無(wú)

用開源xml管理庫(kù)。

無(wú)

無(wú)

列表模塊

列表管理,列表文件的管理。

3.2.1.3

用相關(guān)高效容器實(shí)現(xiàn)。

無(wú)

無(wú)

歌詞模塊

歌詞顯示和功能實(shí)現(xiàn)。

3.2.2.4

走馬燈效果,雙層窗體實(shí)現(xiàn)。

主題模塊。

like-a主題模塊。

Web模塊

瀏覽器的接口實(shí)現(xiàn)。

3.2.3.2

CDHtmlDialog接口處理。

無(wú)

無(wú)

Http下載模塊

下載,緩沖區(qū)的管理。

3.2.3.1

3.2.3.3

WinSock編程實(shí)現(xiàn),多線程下載。

無(wú)

無(wú)

設(shè)置模塊

各種用戶設(shè)置支持。

3.2.4

Xml模塊。

has -a Xml模塊。

4.2.1.2模塊邏輯架構(gòu)圖

圖4-1 模塊邏輯架構(gòu)圖

4.2.1.3架構(gòu)規(guī)格書說(shuō)明

(1)分解方法:根據(jù)各有關(guān)需求,結(jié)合所使用的MFC框架,設(shè)計(jì)以上相應(yīng)模塊。

(2)子系統(tǒng)的協(xié)調(diào):通過各有關(guān)對(duì)象實(shí)例協(xié)調(diào)處理用戶消息,實(shí)現(xiàn)相應(yīng)功能。

4.2.2系統(tǒng)架構(gòu)
4.2.2.1播放模塊架構(gòu)圖:

圖4-2 播放模塊架構(gòu)圖

4.2.2.2解碼模塊架構(gòu)圖:

圖4-3 解碼模塊架構(gòu)圖

4.2.2.3界面模塊架構(gòu)圖

圖4-4 界面模塊架構(gòu)圖

4.2.2.4歌詞模塊架構(gòu)圖

圖4-5 歌詞模塊架構(gòu)圖

4.3詳細(xì)設(shè)計(jì)

4.3.1模塊匯總表

表4-2模塊匯總表

系統(tǒng)A:音頻播放器

模塊名稱

功能簡(jiǎn)述

1.解碼模塊

音頻解碼,實(shí)現(xiàn)對(duì)音頻文件的解碼播放。

2.頻譜模塊

頻譜分析,實(shí)現(xiàn)各種視覺效果。

3.播放模塊

播放,暫停等,并協(xié)調(diào)處理解碼模塊和頻譜模塊的相關(guān)操作。

4.界面模塊

毛玻璃界面實(shí)現(xiàn),并負(fù)責(zé)界面主題的更換,是其他窗口類的基類。

5.主題模塊

界面主題包的管理。

6.Xml模塊

Xml文件的管理,對(duì)所有數(shù)據(jù)的讀取處理工作。

7.列表模塊

列表管理,列表文件的管理。

8.歌詞模塊

歌詞顯示和功能實(shí)現(xiàn)。

9.Web模塊

瀏覽器的接口實(shí)現(xiàn)。

10.Http下載模塊

下載,緩沖區(qū)的管理。

11.設(shè)置模塊

各種用戶設(shè)置支持。

4.3.2模塊設(shè)計(jì)表
4.3.2.1解碼模塊A-1

表4-3解碼模塊設(shè)計(jì)表

模塊名稱

解碼模塊

功能描述

音頻解碼,實(shí)現(xiàn)對(duì)音頻文件的解碼播放。

接口與屬性

(1) 繼承關(guān)系圖:

圖4-6 解碼模塊繼承關(guān)系圖

(2) 類名:CInput

Main Method:

virtual void Pause();//暫停讀取

virtual void Resume();//重新讀取文件

virtual DWORD GetTotalTime();//獲取音頻文件

virtual LARGE_INTEGER GetTotalSamples();//獲取總樣本數(shù)

virtual WORD GetBitsPerSample() = 0;//獲取量化位數(shù)

virtual WORD GetChannels() = 0;//獲取聲道數(shù)

virtual DWORD GetSampleRate() = 0;//獲取采樣頻率

virtual DWORD GetCurrentPlayPos() = 0;//獲取當(dāng)前播放位置

LARGE_INTEGER GetSize();//獲取文件大小

LARGE_INTEGER GetPosition();

void GetData(void** buffer, DWORD* size);//獲取size位置的緩沖區(qū)指針,buffer返回

DWORD CopyData(void* buffer, DWORD size);//復(fù)制size位置的緩沖區(qū)數(shù)據(jù)到buffer

DWORD FillBuffer(void* buffer, DWORD size, BOOL* eof);//復(fù)制填充buffer,eof返回是否成功

void Init();

void Flush();

(3) 類名:CFileIn

CInput

CStreamedInput

CFileIn

Constructor:

CFileIn(void);

virtual ~CFileIn(void);

Main Method:

virtual void OpenFile() = 0;//打開一個(gè)文件

virtual void CloseFile() = 0;//關(guān)閉一個(gè)文件

virtual void GetSoundInformation(char *title, char *artist, char *album, char *year, char *comments) = 0;//讀取音頻數(shù)據(jù)信息

void SetFileName(TCHAR* pszFileName);//設(shè)置文件名

size_t GetFileNameLen();//獲取文件長(zhǎng)度

WORD GetBitsPerSample();

DWORD GetSampleRate();

WORD GetChannels();

INT GetOpened();//獲取打開狀態(tài)

LARGE_INTEGER GetTotalSamples();

DWORD GetTotalTime();

BOOL SetStartTime(DWORD Minutes, DWORD Seconds);

BOOL SetEndTime(DWORD Minutes, DWORD Seconds);

void Reset();

void Jump(INT offset);

算法與原理

內(nèi)部實(shí)現(xiàn)使用相關(guān)解碼庫(kù)解碼成pcm數(shù)據(jù)[3]

補(bǔ)充說(shuō)明

無(wú)

4.3.2.2頻譜模塊A-2

表4-4頻譜模塊設(shè)計(jì)表

模塊名稱

頻譜模塊

功能描述

頻譜分析,實(shí)現(xiàn)各種視覺效果。

接口與屬性

類名:CSpectrumAnalyser //頻譜分析類 繪制頻譜

Constructor:

CSpectrumAnalyser(CBasicPlayer* pPlayer);

~CSpectrumAnalyser(void);

Main Method:

void drawSpectrumAnalyserBar(RECT* pRect, int pX, int pY, int pWidth, int pHeight, int band); //繪制頻譜柱

void prepare(); //初始化

void Start(); //開始繪制

void Stop(); //停止繪制

char* GetAudioDataBuffer();

INT GetPosition();

void SetPosition(INT pPosition) ;

DWORD GetAudioDataBufferLength();

void SetAudioDataBufferLength(DWORD pAudioDataBufferLength) ;

算法與原理

對(duì)pcm數(shù)據(jù)執(zhí)行FFT算法,根據(jù)視覺效果類型進(jìn)行排序渲染繪制。

視覺效果實(shí)現(xiàn)原理:
傅立葉變換是眾多數(shù)學(xué)變化中應(yīng)用最廣泛的一種,其實(shí)質(zhì)是將一個(gè)周期函數(shù)分解成一系列正交函數(shù)的(比如sin和cos函數(shù))的線性集合。快速傅里葉變換將時(shí)域中難以處理的信號(hào)轉(zhuǎn)換成易于處理的頻域信號(hào)。通過把解碼后的PCM數(shù)據(jù)流進(jìn)行實(shí)時(shí)FFT,對(duì)處理后的頻域信號(hào)進(jìn)行分組排序等算法,根據(jù)要實(shí)現(xiàn)的視覺效果進(jìn)行相關(guān)繪制即可。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.3播放模塊A-3

表4-5播放模塊設(shè)計(jì)表

模塊名稱

播放模塊

功能描述

播放,暫停等,并協(xié)調(diào)處理解碼模塊和頻譜模塊的相關(guān)操作。

接口與屬性

類名:CBasicPlayer

Constructor:

CBasicPlayer(HWND hWnd, TCHAR* pszFileName);

~CBasicPlayer(void);

Main Method:

DWORD GetSoundLength();

DWORD GetCurrentPosition();

void SetVolume(int iVolume);

int GetVolume();

void SetCurrentPosition(int pos);

DWORD GetBufferSize()

void SetBufferSize(DWORD pBufferSize)

FLOAT GetSampleRate()

void SetSampleRate(FLOAT pSampleRate)

WORD GetFrameSize()

void SetFrameSize(WORD pFrameSize)

WORD GetBitsPerSample()

void SetBitsPerSample(WORD pBitsPerSample)

WORD GetChannels()

void SetChannels(WORD pChannels)

CPlayThread* GetPlayThread()

DS_Info* GetDSInfo()

long GetBytePosition()

void Start();

void Stop();

void Pause();

__int64 GetLongFramePosition();

算法與原理

均衡器實(shí)現(xiàn)原理[4]
均衡器的作用就是調(diào)節(jié)不同頻率的信號(hào)的強(qiáng)度。聲音作為一種波具有三個(gè)要素:幅度,頻率,相位。其中幅度決定了聲音的大小,頻率決定了聲音音調(diào)的高低。實(shí)際的聲音往往都不是單一頻率的波,而是有各種頻率的波疊加而成,從而形成了各具特色的聲音。
y = Asin(wt+fi)+A0 (單頻率聲波描述) (2-1)
y = A1sin(w1t+fi1) + A2sin(w2t+fi2) + .(實(shí)際的聲波描述) (2-2)
聲音的不同就在于不同頻率的聲信號(hào)具有不同的強(qiáng)度。而均衡器就是根據(jù)這個(gè)原理來(lái)實(shí)現(xiàn)的。
均衡器能自動(dòng)分離不同頻率的信號(hào),并采取不同程度的放大或縮小,從而改變聲音的效果。
具體來(lái)說(shuō),均衡器一般把人能聽到的頻段范圍(20Hz-20KHz)分為多個(gè)頻段,對(duì)不同頻段的聲信號(hào)進(jìn)行不同程度的放大或縮小(增益或負(fù)增益)。
對(duì)處理后PCM數(shù)據(jù)流用DirectSound把數(shù)據(jù)放到音頻設(shè)備上即可。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.4界面模塊A-4

表4-6界面模塊設(shè)計(jì)表

模塊名稱

界面模塊

功能描述

毛玻璃界面實(shí)現(xiàn),并負(fù)責(zé)界面主題的更換,是其他窗口類的基類。

接口與屬性

算法與原理

主界面實(shí)現(xiàn)原理[2]:

我們創(chuàng)建兩個(gè)對(duì)話框,一個(gè)(標(biāo)準(zhǔn)對(duì)話框)負(fù)責(zé)處理用戶輸入事件和窗口消息,另一個(gè)(透明對(duì)話框)負(fù)責(zé)界面展示。

透明對(duì)話框創(chuàng)建通過CreateWindowEx,并賦予WS_EX_LAYERED, WS_EX_TRANSPARENT and WS_EX_NOACTIVATE屬性。而且與真實(shí)對(duì)話框保持大小和位置的一致。標(biāo)準(zhǔn)對(duì)話框用過函數(shù)SetLayeredWindowAttributes設(shè)置完全的透明。

圖4-7 界面窗體層次圖

兩層窗體位置大小同步原理:

上層窗體通過OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)設(shè)置拉伸鼠標(biāo)形狀,通過OnNcLButtonDown(UINT nHitTest, CPoint point)和OnNcHitTest(CPoint point)檢測(cè)鼠標(biāo)非客戶區(qū)(遍體欄和邊框)的點(diǎn)擊,通過OnSize(UINT nType, int cx, int cy)改變窗口大小。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.5主題模塊A-5

表4-7主題模塊設(shè)計(jì)表

模塊名稱

主題模塊

功能描述

界面主題包的管理。

接口與屬性

算法與原理

對(duì)每個(gè)主題使用xml組織頁(yè)面控件位置大小,實(shí)現(xiàn)切換。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.6 XML模塊A-6

表4-8 XML模塊設(shè)計(jì)表

模塊名稱

Xml模塊

功能描述

Xml文件的管理,對(duì)所有數(shù)據(jù)的讀取處理工作。

接口與屬性

算法與原理

用Markup實(shí)現(xiàn)xml的存取,對(duì)系統(tǒng)配置變量進(jìn)行校驗(yàn)管理。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.7模塊A-7

表4-9列表模塊設(shè)計(jì)表

模塊名稱

列表模塊

功能描述

列表管理,列表文件的管理。

接口與屬性

算法與原理

用相關(guān)高效容器實(shí)現(xiàn)。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.8模塊A-8

表4-10歌詞模塊設(shè)計(jì)表

模塊名稱

歌詞模塊

功能描述

歌詞顯示和功能實(shí)現(xiàn)。

接口與屬性

類名:CLyricDlg

CLyricDlg

CDialog

public:

CString SearchLyricLocal(); //歌詞本地搜索

bool OpenLyric(); //打開歌詞文件

void GetLyric(CString strFileName); //分析歌詞

void AnalyseLine(CString strLine); //分析一行

void SortLyric(); //行排序

void DrawText(CDC *pDC); //歌詞繪制

void OnSliderSeek(int soundPos); //滑動(dòng)條歌詞定位

算法與原理

歌詞走馬燈效果實(shí)現(xiàn):
使用雙層窗體,對(duì)這兩層窗體通過進(jìn)行GDI+繪制與和png圖片融合,實(shí)現(xiàn)歌詞走馬燈效果。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.9模塊A-9

表4-11 Web模塊設(shè)計(jì)表

模塊名稱

Web模塊

功能描述

瀏覽器的接口實(shí)現(xiàn)。

接口與屬性

類名:CPageWeb

Main Method:

void WebGoBack();

void WebGoGoForward();

void WebRefresh();

void OnButtonAddOneSound(VARIANT& cSUrl,

VARIANT& cSA, VARIANT& cSName, bool bIsFresh=true);

void AfterAddedRefresh();

bool _IsSoundDownLoad(CString SoundName,CString SoundPath);//接口暴露

BEGIN_DISPATCH_MAP(CPageWeb, CDHtmlDialog)

DISP_FUNCTION(CPageWeb, "OnButtonAddOneSound",

OnButtonAddOneSound, VT_EMPTY,

VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_I1)

DISP_FUNCTION(CPageWeb, "AfterAddedRefresh",

AfterAddedRefresh, VT_EMPTY,VTS_NONE)

END_DISPATCH_MAP()

算法與原理

用CDhtmlDialog給web頁(yè)面暴露接口函數(shù)實(shí)現(xiàn)c++與javescript的交互。

補(bǔ)充說(shuō)明

無(wú)

4.3.2.10模塊A-10

表4-12 Http下載模塊設(shè)計(jì)表

模塊名稱

Http下載模塊

功能描述

下載,緩沖區(qū)的管理

接口與屬性

類名:CHttpSocket

Constructor:

CHttpSocket();

virtual ~CHttpSocket();

Main Method:

CHttpSocket();

virtual ~CHttpSocket();

int GetServerState();//返回服務(wù)器狀態(tài)碼-1表示不成功

int GetField(const char* szSession,char *szValue,int nMaxLength); //返回某個(gè)域值,-1表示不成功

int GetResponseLine(char *pLine,int nMaxLength);//獲取返回頭的一行

const char* GetResponseHeader(int &Length); //獲取完整的返回頭

const char * FormatRequestHeader(char *pServer,

char *pObject,long &Length,char* pCookie=NULL,

char *pReferer=NULL,long nFrom=0,long nTo=0,

int nServerType=0); //格式化請(qǐng)求頭

int GetRequestHeader(char *pHeader,int nMaxLength) const;

BOOL SendRequest(const char* pRequestHeader = NULL,long Length = 0);

BOOL SetTimeout(int nTime,int nType=0);

long Receive(char* pBuffer,long nMaxLength);

BOOL Connect(char* szHostName,int nPort=80);

BOOL Socket();

BOOL CloseSocket();

算法與原理

WinSock多線程下載實(shí)現(xiàn)

補(bǔ)充說(shuō)明

無(wú)

4.3.2.11模塊A-11

表4-13設(shè)置模塊設(shè)計(jì)表

模塊名稱

設(shè)置模塊

功能描述

各種用戶設(shè)置支持

接口與屬性

類名:CPropertyMainDlg

Constructor:

CPropertyMainDlg(CWnd* pParent = NULL);

~CPropertyMainDlg();

private:

vector<pageStruct *> m_pages;

int m_iCurPage;

CRect m_frameRect;

CString m_csConstantText;

Main Method:

void Init();

bool AddPage(CPropertySubDlg *page, const char *pCaption);

void ShowPage(int iPage);

算法與原理

補(bǔ)充說(shuō)明

無(wú)

4.3.3界面詳細(xì)設(shè)計(jì)
4.3.3.1應(yīng)當(dāng)遵循的界面設(shè)計(jì)規(guī)范

(1) 操作的簡(jiǎn)單性。

(2) 界面的一致性。

(3) 組織的合適性。

(4) 操作的靈活性。

4.3.3.2界面的關(guān)系圖和工作流程圖
4.3.3.3主界面設(shè)計(jì)

(1) 繪制子主界面的視圖:

圖4-8 主界面設(shè)計(jì)

(2) 主界面和整體界面的顯示效果:

圖4-9 主界面顯示效果

圖4-10 主界面去列表顯示效果

圖4-11 界面整體顯示效果

(3) 主界面的功能與操作:

主要功能和操作:鼠標(biāo)移至窗口即顯示相關(guān)按鈕,包括上一首,下一首,播放,暫停,停止,關(guān)閉,最小化,打開歌詞,打開音樂窗,打開均衡器,打開歌曲列表,打開歌曲文件,聲音調(diào)整,選時(shí)播放。

4.3.3.4 設(shè)置界面設(shè)計(jì)

(1) 設(shè)置界面顯示效果:

圖4-12 界面整體顯示效果

(2) 設(shè)置界面的功能與操作:

可以設(shè)置各種屬性項(xiàng)

4.3.3.5 下載管理界面設(shè)計(jì)

(1) 繪制下載管理彈出菜單視圖:

圖4-13 下載菜單設(shè)計(jì)

(2) 下載界面的顯示效果:

圖4-14 下載顯示效果

(3) 下載界面的功能與操作:

包括開始播放,開始任務(wù),暫停任務(wù),上一道頂部,下移到底部,打開文件夾,從硬盤上刪除。

轉(zhuǎn)載于:https://www.cnblogs.com/ququer/articles/2131401.html

總結(jié)

以上是生活随笔為你收集整理的一款音频播放软件设计文档,欢迎提出宝贵的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。