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

看板LinuxDev作者 (A_wei)時間11年前 (2013/12/17 17:01), 編輯推噓3(307)
留言10則, 2人參與, 最新討論串1/1
作業系統 : 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可以用的問題嗎?? 求解,謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.133.188

12/17 19:24, , 1F
環境詳細? 有 pulseaudio?ALSA有開 dmix/asym ?
12/17 19:24, 1F

12/18 12:30, , 2F
pulseaudio跟ALSA不是不一樣的東西嗎?
12/18 12:30, 2F

12/18 12:32, , 3F
可以請問dmix/asym是做什麼的??
12/18 12:32, 3F

12/18 12:34, , 4F
因為我用單向傳輸的話都是成功沒問題的,雙向就有上述
12/18 12:34, 4F

12/18 12:34, , 5F
的問題
12/18 12:34, 5F

12/18 19:33, , 6F
pulseaudio 是 sound server,ALSA 是 kernel module +
12/18 19:33, 6F

12/18 19:34, , 7F
libasound userspace API,dmix/asym 是 libasound 附帶
12/18 19:34, 7F

12/18 19:34, , 8F
的 plugins
12/18 19:34, 8F

12/18 19:36, , 9F
dmix 做軟體混音,asym 可以讓你同時做錄音跟播放
12/18 19:36, 9F

12/18 19:37, , 10F
pulseaudio 可以取代上面的 plugins 做更進階的路由
12/18 19:37, 10F
文章代碼(AID): #1Ii1BH7t (LinuxDev)
文章代碼(AID): #1Ii1BH7t (LinuxDev)