作者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