[問題] ALSA 播放為什麼會延遲??

作者: david800427 (A_wei)   2013-12-17 17:01:03
作業系統 : BUNUTU 10.04
Sample rate : 8000
Number of channel : 2
format : 16 LE
frames = 320
size = frames*4 (2channel+2bytes)
char * buffer = malloc(size)
目標 : PC與手機語音溝通
我的流程為
intial(capture_handle);
intial(playback_handle);
readi(capture_handle, buffer, frames)
sendto(UDPsocket, buffer, size, mobileAddr, sizeof(mobileAddr));
recvfrom (UDPSErverSocket, buffer, size, sockAddr, sizeof(sockAddr));
writei(playback_handle, buffer, frames);
結果傳送給手機端手機可以撥出來沒問題且即時
但是我收到手機的封包時,也writei,但是聲音會過約一分鐘才撥出,
或是在一分鐘內把程式關掉就開始撥聲音
這是因為PCM的資源只有一個handle可以用的問題嗎??
求解,謝謝!!
作者: Bencrie   2013-02-17 19:24:00
環境詳細? 有 pulseaudio?ALSA有開 dmix/asym ?
作者: david800427 (A_wei)   2013-02-18 12:30:00
pulseaudio跟ALSA不是不一樣的東西嗎?可以請問dmix/asym是做什麼的??因為我用單向傳輸的話都是成功沒問題的,雙向就有上述的問題
作者: Bencrie   2013-02-18 19:33:00
pulseaudio 是 sound server,ALSA 是 kernel module +libasound userspace API,dmix/asym 是 libasound 附帶的 pluginsdmix 做軟體混音,asym 可以讓你同時做錄音跟播放pulseaudio 可以取代上面的 plugins 做更進階的路由

Links booklink

Contact Us: admin [ a t ] ucptt.com