MyJingle 

1.MyJingle簡(jiǎn)介 MyJingle只是一個(gè)LibJingle的Win/MFC的DEMO.LibJingle又是什么?LibJingle是GOOGLE的一個(gè)開源項(xiàng)目.用于GOOGLE TALK的語(yǔ)音和P2P庫(kù).

簡(jiǎn)單來(lái)說(shuō),MyJingle利用LibJingle和一個(gè)叫Speex的音頻編碼,組成一個(gè)P2P的語(yǔ)音通訊軟件.當(dāng)然他還依賴XMPP作為服務(wù)端進(jìn)行一些連接通訊.詳細(xì)介紹可以上官方網(wǎng)站.

MyJingle:http://www.bluehands.de/software/beat/myjingle/

 LibJingle:http://code.google.com/apis/talk/index.html

2.準(zhǔn)備工作 安裝VC 8(在VS2005里面). 安裝Microsoft DirectX SDK (February 2006) 安裝Microsoft Platform SDK for Windows Server 2003 R2 3.設(shè)置,編譯 用VC打開MyJingle.sln,需要先設(shè)置兩個(gè)lib和inclue 工具-選項(xiàng)-項(xiàng)目和解決方案, 選擇"包含文件"添加 E:\Microsoft DirectX SDK (February 2006)\Include E:\Microsoft Platform SDK for Windows Server 2003 R2\Include 選擇"庫(kù)文件"添加 E:\Microsoft DirectX SDK (February 2006)\Lib\x86 E:\Microsoft Platform SDK for Windows Server 2003 R2\Lib

好了,現(xiàn)在可以編譯通過了. 但是會(huì)提示LIBCMT庫(kù)沖突. 然后在MyJingle項(xiàng)目右鍵-屬性-配置屬性-鏈接器-輸入,"忽略特定庫(kù)"那里輸入LIBCMT

4.修改 MyJingle只能連上Gmail,其他XMPP的服務(wù)端連不上,需要修改一下代碼.

修改  saslplainmechanism.h文件

  virtual XmlElement * StartSaslAuth() {  std::string  sUser;     int i = user_jid_.Str().find("@");     sUser = user_jid_.Str().substr(0,i);

    // send initial request     XmlElement * el = new XmlElement(QN_SASL_AUTH, true);     el->AddAttr(QN_MECHANISM, "PLAIN");

    FormatXmppPassword credential;     credential.Append("\0", 1);     //credential.Append(user_jid_.Str());  credential.Append(sUser);     credential.Append("\0", 1);     credential.Append(&password_);     el->AddText(Base64EncodeFromArray(credential.GetData(), credential.GetLength()));     return el;   }