[问题] 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