CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

ACM延迟问题

楼主meilixueshan2009(213211)2006-01-24 19:48:10 在 Delphi / 网络通信/分布式开发 提问

如何解决ACM的延迟问题呀?  
  还有  
  TGSM610=packed       record                                   //自定义音频文件头  
        wFormatTag:       Word;  
        nChannels:       Word;  
        nSamplesPerSec:       DWORD;  
        nAvgBytesPerSec:       DWORD;  
        nBlockAlign:       Word;  
        wBitsPerSample:       Word;  
        cbSize:       Word;  
        wSamplesPerBlock:word;  
  end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  var  
      GSM:TGSM610;  
      Format:pointer;  
  begin  
  with       GSM       do  
      begin  
              wFormatTag:=$31;  
              nChannels:=1;  
              wBitsPerSample:=0;  
              nSamplesPerSec:=8000;  
              nBlockAlign:=65;  
              nAvgBytesPerSec:=1625;  
              cbSize:=2;  
              wSamplesPerBlock:=$140;  
      end;  
  format:=@GSM;  
  Wavein.Open(format);  
  Waveout.Open(Format);  
  end;  
  声音为什么是滴滴的响,没有声音呀?象发电报一样! 问题点数:100、回复次数:3Top

1 楼clasj(★知我☆)回复于 2006-01-24 22:29:36 得分 100

var  
      buf:   array[0..65535]   of   byte;  
      bufsize:   Integer   =   0;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      format:   Pointer;  
      GSM:TGSM610;  
  begin  
      with       GSM       do  
      begin  
              wFormatTag:=$31;  
              nChannels:=1;  
              wBitsPerSample:=0;  
              nSamplesPerSec:=8000;  
              nBlockAlign:=65;  
              nAvgBytesPerSec:=1625;  
              cbSize:=2;  
              wSamplesPerBlock:=$140;  
      end;  
      format:=@gsm;  
      ACMWaveIn1.Open(format);  
      ACMWaveOut1.Open(format);  
  end;  
   
  procedure   TForm1.ACMWaveIn1Data(data:   Pointer;   size:   Integer);  
  begin  
      copymemory(pchar(@buf)+bufsize,   data,   size);  
      inc(bufsize,   size);  
      if   bufsize>=1300   then  
      begin  
          ACMWaveOut1.PlayBack(@buf,   bufsize);  
          bufsize:=0;  
      end;  
  end;  
   
  我是这样测试的,有声音啊  
  你用我的代码测试一下,我把延迟加长了一点,要不然分不清回放的声音和原声了  
  你还差我300分呢:)Top

2 楼meilixueshan2009(213211)回复于 2006-01-25 08:12:55 得分 0

怎么加长或缩短延迟呀?  
  完全用你的代码,可是没不出来呀Top

3 楼meilixueshan2009(213211)回复于 2006-01-25 09:22:44 得分 0

老兄,要是用TCP组件发送出去  
  那客户端和服务端怎么写呀?  
  拜托,等着结贴呀!  
  我还欠你300分呢Top

相关问题

  • 如何解决ACM传送的延迟问题?
  • 延迟效果
  • 时间延迟.25?
  • linux 下 延迟500ms ?
  • 如何实现延迟?
  • 怎样能让Applet延迟?
  • 请问repaint()延迟问题?
  • 延迟写入失败
  • 求 C# 的延迟函数
  • 延迟刷新的问题

关键词

  • 延迟
  • word
  • tgsm610
  • wsamplesperblock
  • bufsize
  • gsm
  • navgbytespersec
  • wformattag
  • wbitspersample
  • nblockalign

得分解答快速导航

  • 帖主:meilixueshan2009
  • clasj

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo