作者david800427 (A_wei)
看板LinuxDev
標題[問題] ALSA 播放為什麼會延遲??
時間Tue Dec 17 17:01:03 2013
作業系統 : 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
1F:推 Bencrie:環境詳細? 有 pulseaudio?ALSA有開 dmix/asym ? 12/17 19:24
2F:→ david800427:pulseaudio跟ALSA不是不一樣的東西嗎? 12/18 12:30
3F:→ david800427:可以請問dmix/asym是做什麼的?? 12/18 12:32
4F:→ david800427:因為我用單向傳輸的話都是成功沒問題的,雙向就有上述 12/18 12:34
5F:→ david800427:的問題 12/18 12:34
6F:推 Bencrie:pulseaudio 是 sound server,ALSA 是 kernel module + 12/18 19:33
7F:→ Bencrie:libasound userspace API,dmix/asym 是 libasound 附帶 12/18 19:34
8F:→ Bencrie:的 plugins 12/18 19:34
9F:推 Bencrie:dmix 做軟體混音,asym 可以讓你同時做錄音跟播放 12/18 19:36
10F:→ Bencrie:pulseaudio 可以取代上面的 plugins 做更進階的路由 12/18 19:37