两个关于音频的问题
来源:互联网 发布:腾讯云 ubuntu 编辑:程序博客网 时间:2024/04/28 00:37
首先你可以要分析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;
如: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;
- 两个关于音频的问题
- 记录两个关于处理音频的库
- 关于win7的音频问题
- *关于音频焦点和音频竞争通道的问题
- 关于音频采样率以及比特率的问题
- 关于OpenAL 音频采集的问题.
- Android蓝牙音频两个问题
- 关于RICHEDIT的两个问题
- 关于输入法的两个问题
- 关于MSDE 的两个问题
- 关于CHECKBOX的两个问题
- 关于Cactus的两个问题
- 关于RICHEDIT的两个问题
- 关于js的两个问题
- 关于hibernate的两个问题
- 两个关于Struts2的问题
- 两个关于字符串的问题
- 关于阶乘的两个问题
- VML cache issue
- WAV文件格式的应用举例
- test
- Red Hat 9:Linux下安装mplayer播放器
- [转载+整理]JSP问答...
- 两个关于音频的问题
- new idea for PIES
- UBB 编辑器演示 (兼容 IE, Opera, Firefox) By shawl.qiu
- 水
- 数据库设计范式
- 新海天投资管理有限公司面试题
- asp.net问题中心
- Windows常见问题集锦
- Web项目开发常用基础知识集锦