欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

 首頁 > 技術(shù) > 技術(shù)文摘 > 基于MSTTS的網(wǎng)絡(luò)通信應(yīng)用開發(fā)

基于MSTTS的網(wǎng)絡(luò)通信應(yīng)用開發(fā)

2003-08-04 00:00:00   作者:   來源:   評(píng)論:0 點(diǎn)擊:



一、MSTTS(Microsoft Text TO Speech,文本朗讀)網(wǎng)絡(luò)通信設(shè)計(jì)
  MSTTS 是基于COM(Component Object Model,組件對(duì)象模型) 規(guī)范的文本朗讀技術(shù);簡單地說,它能將文本直接朗讀出來.因此應(yīng)用MSTTS技術(shù) ,我們可以開發(fā)出具有語音功能的網(wǎng)絡(luò)通信,
  本文的基本設(shè)計(jì)思路: 通信方,將通話文本信息通過網(wǎng)絡(luò)傳輸?shù)綄?duì)方;對(duì)方接收到信息后,顯示信息并同時(shí)通過MSTTS 播放出來。

二、MSTTS 應(yīng)用程序開發(fā).
  MSTTS基于COM 規(guī)范的文本朗讀技術(shù);COM是基于二進(jìn)制標(biāo)準(zhǔn)一種軟件組件通信技術(shù),它主要的目標(biāo)是為了管理日益復(fù)雜的應(yīng)用程序和實(shí)現(xiàn)代碼重用.在使用COM組件對(duì)象時(shí),一般地使用兩種方式:
  A.通過CoCreateInstance() 或CoCreateInstanceEx()實(shí)例化對(duì)象;然后調(diào)用Addref()引用 計(jì)數(shù),使用完后,再調(diào)用Release()釋放對(duì)象
  B..另外一種更簡便的方法就是使用智能指針(smart pointer)。
  所有的智能指針都是基于_com_ptr_t 的模塊類,_ com_ptr_t 它封裝IUnknow QureyInterface ,Addref() 和 Release() 方法;它具有自動(dòng)計(jì)數(shù)的機(jī)制:即在構(gòu)造對(duì)象時(shí),自動(dòng)計(jì)數(shù);在析構(gòu)對(duì)象時(shí),自動(dòng)調(diào)用Release().通過 #import 指令可以入服務(wù)組件到應(yīng)用程序中,并生成智能指針定義.
1.MTTS 組件的應(yīng)用編程
導(dǎo)入MSTTS 組件
#import "C:WinntSpeechVText.DLL" no_namespace // MSTTS 的安裝目錄
CoInitialize(NULL); //COM 初始化
ITextToSpeechPtr pSkPtr(_uuidof(TextToSpeech)); /MSTTS智能指針
ITextToSpeech *pTxtSph=pSkPtr.GetInterfacePtr();;
pTxtSph->AddRef();
1>.朗讀
char buf[]=”Hello, the word!”; //文本信息
pTxtSph->Speak(buf); //朗讀
2>.暫停
pTextSph->Pause();
3>.繼續(xù)
pTxtSph->Resume();
4>.停止
pTxtSph->Stop();

<1> 套接字
  它是網(wǎng)絡(luò)的基本構(gòu)件,是網(wǎng)絡(luò)應(yīng)用程序接口。它具有可以被命名和尋址的通信端點(diǎn),使用中的每一個(gè)套接字都有其類型和一個(gè)與之相連聽進(jìn)程。WINDOWS SOCKET 版本支持兩種套接字:流套接字(SOCK_STREAM)和數(shù)據(jù)報(bào)套接字(SOCK_DGRAM) .
<2>、WINDOWS SOCKETS 實(shí)現(xiàn)
  WINDOWS SOCKETS 實(shí)現(xiàn)是指實(shí)現(xiàn)了WINDOWS SOCKETS規(guī)范所描述的全部功能的一套軟件。在VC++6.0 開發(fā)平臺(tái)中它提供了專門的阻塞形式的CSocket 類() 和異步形式的CAsyncSocket 類,封裝實(shí)現(xiàn)了Windows Sockets 功能..
<3>網(wǎng)絡(luò)數(shù)據(jù)報(bào)通信的編程實(shí)現(xiàn)
A. 創(chuàng)建建套接字
CasyncSocket m_Sock;
M_Sock.Create(6000,SOCK_DGRAM);// 數(shù)據(jù)報(bào)套接字,端口6000
B. 發(fā)送文本信息
char textbuf[]=”Hello,good day!”
m_Sock.SendTo(textbuf,//發(fā)送的數(shù)據(jù)
sizeof(buf),//數(shù)據(jù)的大小
,6000,//對(duì)方的端口
“127.0.0.1”,//對(duì)方的主機(jī)名或IP 地址
0);
C. 接收文本信息
char revbuf[50];//接收緩存區(qū)
CString strHost;//保存發(fā)送方IP地址的字符串
unsigned int port;//發(fā)送方端口
int len=m_Sock.ReceiveFrom(revbuf,50,strHost,port); //接收信息
pTxtSph->Speak(revbuf); //朗讀接收到的文本信息
3.程序示例
<1>用戶界面(如下圖)

<2>通信演示(單機(jī)的自發(fā)自收)

計(jì)算機(jī)世界網(wǎng)(www.ccw.com.cn)

相關(guān)閱讀:

分享到: 收藏

專題