關於網路電話~!! |
尚未結案
|
yuanyu
一般會員 發表:1 回覆:1 積分:0 註冊:2002-05-29 發送簡訊給我 |
各位大大!我想寫一個網路電話(P2P)!在這中間我遇到了一些觀念上的問題!!
以下是我的問題:
1.目前我已經寫出了錄音程式!我是存在File Stream中!!因為我必須一邊存檔一邊傳送檔案!那我的檔案不就很大嗎?有什麼方法可以解決的嗎?? 2.我是兩個Thread在跑(一個是錄音,一個Socket(UDP))傳送,那當我在錄音時!我的另一個Socket 也必須去存取那個檔案~然後就會出現錯誤了!!我想是OS的檔案保護機制的緣故吧,因為我一個檔案同時兩個Thread在存取!! 3.我如果想用Socket(無論是TCP或UDP)傳送出去!那我轉成Byte Array的形式!!然後一個Byte一個Byte的送到對方時~我該如果把它撥放出來呢??是要先存成檔案嗎?還是?有什麼辦法可以直接撥放? 以上大概就是我的問題!!謝謝各位先進的指導~
|
chunngai
一般會員 發表:0 回覆:1 積分:0 註冊:2005-01-03 發送簡訊給我 |
我都做緊呢個project,我已經可以pass network,但係我唔係用file stream儲存,我係用data stream的,因為錄音時都係用data stream儲存的,用data stream傳送只限於tcp.如果你想用udp傳送就要set packet size.錄音(用byte存聲音)拿回來的data放係packet size內then直接send到另一user.
我係用呢個方法囉,但係就會產生好多delay o既problem.我講完成秒先聽得返用tcp時,用udp時就會有雜音,都唔知點好,如果你解決到呢個問題,請教教我. no
------
no |
WY.GZ
一般會員 發表:1 回覆:10 積分:7 註冊:2003-05-07 發送簡訊給我 |
|
chowleft
一般會員 發表:0 回覆:2 積分:0 註冊:2004-12-12 發送簡訊給我 |
To yuanyu 1. 錄音以後應該不用作存檔的動作, 直接把錄音下來的資料丟到對方那邊去不就好了嗎? 一般將聲音錄下來存在buffer以後就是直接對語音資料作編碼, 然後就加header送出去了 2. 你可以試試看用多個Buffer來實做錄音程式, 在錄完一個Buffer時觸發Callback事件去處理, 這時錄音的Thread繼續寫入下一個Buffer, 這樣應該可以解決問題 3. 接收端接到資料以後並不需要存成檔案, 直接播放即可, 一般流程就是跟送端相反: 解header -> decode -> 播放這樣, 要直接播放Buffer的話可以看看waveOut之類的相關API 我不是很懂Delphi, 不過觀念應該是沒錯
希望這樣有解開你的疑惑^^ 這裡有大大提供一個不錯的程式範例可以參考
http://delphi.ktop.com.tw/topic.php?topic_id=25671
|
yuanyu
一般會員 發表:1 回覆:1 積分:0 註冊:2002-05-29 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |