请问如何做出播放器上的波形电平表显示程序?就象WINAMP一样。(200分)

  • 主题发起人 主题发起人 arychen
  • 开始时间 开始时间
A

arychen

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何做出播放器上的波形电平表显示程序?就象WINAMP一样。请问主要涉及什么技术,
用什么方式实现?
 
取得电平大小就得了
 
如何得到电平大小???
 
可以用一些控件,但是电平大小要自己取的
 
还是没有深入主题,没有实际意义!
我在CSDN上找到一点资料:用直接得到每个采样点的数值(PCMWave 格式)
根据数值画线,哈哈!
哈哈!我把我写的,如何得到采样点数值程序给你看看
if (m_bOpen)
{
bool bDouble=(m_PCMWaveFmtRecord.wf.nChannels==2);
switch(m_PCMWaveFmtRecord.wf.nBlockAlign)
{
case 1:
WavVal = (unsigned int) *( (PBYTE)(pWaveStartCount) +i)-0x80;
break;
case 2:
{
WORD tmpVal= *((WORD*)(pWaveStartCount)+i);
if(m_PCMWaveFmtRecord.wf.nSamplesPerSec==8) WavVal=tmpVal-0x80;
case 4:
{
dwVal = *((DWORD*)(pWaveStartCount)+i);
if(bRight) dwVal>>=16;
WavVal=(int)(short)dwVal;
}
break;
case 8:
{
dwVal = *((DWORD*)(pWaveStartCount)+i);
if(bRight) dwVal>>=32;
dwVal|=0xffff0000;
WavVal=(int)(short)dwVal;
}
break;
default:
TRACE("Unknown format/n");
}
return WavVal;

 
上面的代码是CSDN上摘的,不是我写的。
 
还有没有高手???
 
我知道,但要钱,
象winamp的不是取电平,他是从mp3解码中来的
取得电平的例子可以到www.pconline.com.cnz中查一下amoiplayer,他是采用取得电平来获得波形的
效率比winamp高一点点
 
靠,把IT80踢出去,总来这里卖技术。不回答就算了,干吗老是要钱。
 
呵呵!算了!

我想总会有人能行的,请高手赐教!!
 
下载一个MMTools,你要的他全有,你没想到的他也有了
 
[补充]下载地址:http://delphi.mychangshu.com/dispdoc.asp?id=820
 
对这个控件早就知道了,但是不能都靠控件啊!
原理还是一要懂的!
请有相关资料的朋友共享一点吧!
请给我发MAIL:arychen@21cn.com
 
从mp3解码
 
emonster,如何从MP3解码呢?
请介绍一点相关的知识。
还有哪位朋友有相关的资料吗?
大家不要一味的依靠控件啊!那样是很难做出有特色的东西的,自己也没有提高!
 
to arychen
我有别人的一个演示程序!
 
是该弄懂原理
听课中
 
关注
另:WINAMP显示的是多个频率的电平,如何区分各个频率点?
 
模拟信号在用A/D转换为原始数字信号是通过采样来进行的,采样是主要就是在时间闸取幅值也就是电平高
低。mp3解码后转成原始数字信号然后送到声卡D/A再转成模所以一定有电平,你可以在原始数字信号中
取电平值。(具体编程序我没有经验,但我学过电子)。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部