看板 LinuxDev 關於我們 聯絡資訊
作業系統 : 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
Bencrie:環境詳細? 有 pulseaudio?ALSA有開 dmix/asym ? 12/17 19:24
david800427:pulseaudio跟ALSA不是不一樣的東西嗎? 12/18 12:30
david800427:可以請問dmix/asym是做什麼的?? 12/18 12:32
david800427:因為我用單向傳輸的話都是成功沒問題的,雙向就有上述 12/18 12:34
david800427:的問題 12/18 12:34
Bencrie:pulseaudio 是 sound server,ALSA 是 kernel module + 12/18 19:33
Bencrie:libasound userspace API,dmix/asym 是 libasound 附帶 12/18 19:34
Bencrie:的 plugins 12/18 19:34
Bencrie:dmix 做軟體混音,asym 可以讓你同時做錄音跟播放 12/18 19:36
Bencrie:pulseaudio 可以取代上面的 plugins 做更進階的路由 12/18 19:37