ACM音频采样的延时问题(200分)

  • 主题发起人 主题发起人 caowei
  • 开始时间 开始时间
C

caowei

Unregistered / Unconfirmed
GUEST, unregistred user!
使用ACM进行音频的采样和传输的时候,由于ACM是一秒一个数据包,
造成传输的时候至少一秒延时。请问这个问题怎么解决?
 
改变数据格式中音频数据存储区的大小.
 
能否说得稍微具体那么一点点?
拜托!
 
你是在局部网还是互联网?
我以前用DIRCTX在局部网传输也没有延迟那么厉害啊。
还有你传输用什么控件还是底层?这个也很重要的啊。
 
变量中
qwavehdr:wavehdr;
程序中增加
with qwavehdrdo

begin

dwBufferLength := 改为你需要的长度,
end;


 
我试了,不行啊!修改了以后就说格式不正确了.....
我看了ACM的帮助,说这个数值是不能修改的!
 
用DirectSound的例子哪里有啊?
 
任何直播都应许延迟
 
我也遇到同样的问题
acm的延时也太长了,1s延时如再加上网络传输的延时,肯定是无法忍受的
关注......
 
你是用acm控件还是acm函数?用acm函数是可以调整缓冲区大小的。
 
我用的是ACM函数,请问怎样调整缓冲区的大小?
我试着调整nSamplesPerSec和nAvgBytesPerSec
好象还不行
 
最好是用底层WAVE函数,
 
那应该怎么用呢?
 
我用的acmin,acmout 控件应如何调整呢?
 
底城的怎么实现,有没有什么例子啊!我就会acm.不过可以在初始化时指定参数!
 
我用acm做了一个程序,局域网内可以聊天。但是声音特别小,在本机上调试时
也是如此。不知道是不是集成声卡的问题啊,我已经把音量,麦克开到最大啦!
哪位大虾知道请告知。谢谢。
 
还要打开麦克风增强,打开后音量增大效果特别明显
 

使用ACM进行音频的采样和传输的时候,由于ACM是一秒一个数据包,
造成传输的时候至少一秒延时。请问这个问题怎么解决?

首先,无论ACM API函数还是通过设置ACM控件都可设置。以下为我测试ACM控件的结果:
若是ACM控件,可以设置4块缓存,若是使用UDP协议传输,512大小效果最佳;若是采用TCP协议,1024效果最佳。
关于开始延时较小(不到一秒,人感觉效果很好),但过一两分种后会出现延时加长问题,可以考虑通过一个TIMER控件控制定期关闭ACM控件再打开或通过多线程,队列缓冲机制消减延时问题。
 
请教如何设置??我使用GSM610格式,每秒的数据大小为1625,怎么改为1024?
 
使用socket吧,它可以传送8k,我在局域网内有试过,延时还可以,效果不错
 
后退
顶部