两个关于音频的问题

首先你可以要分析wave的格式,看他的采样比特,和通道;  
  如:16比特,单声道,那么两个字节代表一个音频数据,也是我们要画的  
  画法如下:(这是我的一个程序中显示wave的一段程序)  
  procedure       TPcmEdit.PrintPcm(ACanvas:TCanvas;AWidth,Aheight:integer);  
  var  
      i,j,ZZ,iNow,iBegin:integer;  
      iOldPos:Longint;  
  begin  
      with   ACanvas   do  
      begin  
          //画矩形框  
          Brush.Color:=clBlack;  
          FillRect(RECT(0,0,AWidth,Aheight));  
          MoveTo(0,Aheight   div   2);  
          Pen.Color:=clLime   ;  
          LineTo(AWidth,Aheight   div   2);  
          //初始化读数据状态  
          iOldPos:=FMemPcmFile.Position;  
          GoToBegin;  
          FBuffBegin:=0;  
          FBuffSize:=0;  
          MoveTo(0,Aheight   div   2);  
          ZZ:=GetFileSize   div   AWidth;  
          iNow:=0;  
          while   FBuffBegin+FBuffSize<GetFileSize   do  
          begin  
              iBegin:=iNow;  
              ReadBuffer(Min(GetFileSize-FMemPcmFile.Position,MaxBuffSize));  
              for   i:=0   to   AWidth-1   do  
              begin  
                  if   i*zz<=FBuffSize   then   inc(iNow)  
                  else   Break;  
                  for   j:=0   to   ZZ-1   do  
                  begin  
                      if   i*ZZ+j<=FBuffSize   then  
                          LineTo(iBegin+i,GetPcmToWavByte(FPcmBuffer[i*ZZ+j+1]))  
                      else   Break;  
                  end;  
              end;  
          end;  
          GoToPos(iOldPos);//还原流的状态  
      end;  
  end;   
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值