Wednesday, February 20, 2008

พยายามเหลือเกิน Voice ใน Windows Mobile

Voice ในที่นี้เป็นส่วนหนึ่งในโปรเจคสำคัญ คือ XMPP + VOIP +... Video Flv + ... +... (อะไรนักหนา)
ซึ่งต้องลงบน PPC

เลือกใช้ based on WM5
XMPP ใช้ของ AG Software (agsxmpp) เป็น C# อยู่แล้ว ใช้ง่าย มีคุณ Alex ตอบทุกกระทู้

เรื่องการจัดการ session ใช้ XMPP Server ของ Openfire ใช้ได้ดี Admin ง่าย

แต่เริ่มมีปัญหาที่ Voice เนื่องจากไม่มี Engine ที่ใช้ได้ เนื่องจาก

ส่วนใหญ่ยังไม่ port ลง CF ให้
ล้วนเป็น c++
ล้วนซับซ้อน ต้อง call dll วุ่นวาย เหยๆ
(แค่เรื่อง dll กับ lib ต่างกันยังไง managed ไม่ managed ก็ตายแล่ว)

เลยใช้ตรงๆคือ PCM Wave ไปก่อน

ซึ่ง ช้ามากเมื่อส่งไปทาง Network แม้จะเป็น UDP แล้วก็ตาม
Delay แระมาน 6-7 วิ ทั้งๆอยู่ใน LAN รับไม่ได้

พยายามเหลือเกิน Voice อยากใช้ Speex เพราะเคยใช้อ่านเสียง E-book ในคอม ไฟล์เล็กดี

แต่มันเป็น C++ พยายามอยู่นาน ที่จะ pack เป็น Wrapper เพื่อเรียกจาก C# ได้
แค่ compile ผ่านยังไม่พอ เพราะเวลามัน Link กันยังไม่เจอซักที เรื่องการเรียก DLL บน C# ที่ Add reference ไม่ได้
(คือ มาจาก c++ และไม่ได้เป็น Assembly)

ก็เรียกผ่าน P/Invoke แต่ก็นั่นแหละ ขั้นตอนการ link ไม่เจอ ใส่ Add Additional Library ก็ทั้งหมดแล้ว ยัง link ไม่ได้เลย
ขึ้นประมาณว่า unresolved external symbol กะตัวยึ้กยือ หมดปัญญา เพราะวิธีแก้ก็คือ Add Lib แต่ Add ไปล้วก็ไม่เจอ

มีเค้าว่า ต้องใส่ให้มัน extern "C" เพราะ Class จาก C++~ มันจะมี C นำให้ต้องบอกใน header ให้ code เรารู้ ก็ทำแล้ว ก็ยังเจ๊งบ้ง

เลยกลับมาไล่ดู lib อื่นบ้าง ไม่ไหว พัก speex ไว้ก่อน

ดู GIPS ดู LibJingle ซึ่งเมื่อก่อนดูๆไว้ แต่มันเป็น c++ ไง เลยเลือกใช้ agsxmpp

กลับมาก็ link กันไม่ได้เหมือนเดิม ปัญหาคือเราโง่ dot net

มีเค้า(เค้านี่มาจาก พ่อกูกทั้งนั้น)บอกว่า มี speex .net ทำจาก JSpeex เหอ จะเอางี้ไหว port จาก c++~ ไม่ได้ดีนัก เดี๋ยวพ่อทำมั่ง port จาก java มา c# ซะดีมั้ยเนี่ย

แต่ก็นะดันเจอนี่ http://www.ilbcfreeware.org/software.html ในบล็อกพี่ Hui น่ะ แต่หาทางเอา source เค้าออกมาไม่ได้อะ
ไม่ใช่ SVN ด้วย

ดูๆอยู่ว่า 2 แนวนี้น่าจะไปซักแนว หรือไม่ก็ช่างมันไปเลย ทำ PCM ให้ดี และเน PTT (Push To Talk) ของเดิม ของถนัดดีกว่า


ปล. ตัดสินใจเขียนในสิ่งที่ไม่รู้ ดีกว่ารอให้รู้ก่อนค่อยเขียน เพราะการรอนั้น อาจไม่มีวันมาถึง เพราะสิ่งเดียวที่รู้แน่ คือความไม่รู้...

No comments: