|
求助各位大人:
小弟正在Linux下用C语言作一个声音传输的系统,也就类似于QQ中的语音聊天在linux下的实现。现在遇到了问题如下,希望有达人能指点一二:
我分了两个功能模块:
1.一个发送模块负责从话筒录音并用socket发送;
2.接收模块:从网络接收声音数据并播放。
问题:
a.在录音模块进行录音时,需开辟一缓冲区以确定录音的长度。这个大小如何确定?
应该说一旦连接建立成功之后就开始进行录音,那应该录多长时间?
b.在录音的同时是不是要进行发送?否则发送端的缓冲区就会被填满了?那样的话录音的长度与发 送的速度如何进行协调?
c.当然播放端也有一样的问题:当网络传过来的数据到达后,如何协调播放的速度和接收的速度?
d.最后,还有一个很麻烦的问题,我这两个功能模块实际上相当于两个线程,因为语音聊天当然是 一个全双功的系统,也就是这两个线程是同时在运行的,也就涉及到哪个线程占用声卡这个 临界资源。而这两个线程又不是并发的关系。这个问题不知道如何解决?
先谢过各位达人了,我是新手,很多东西都不熟悉,还望大人们不要闲简单了。 |
|