当前位置: 代码迷 >> 多媒体设计 >> 播放器在播放音乐时,经常会有曲线随着音乐的节奏在震动,请教那时如何做的,小弟我在音频贞里没有找到相关的信息,用后面的数据如何弄
  详细解决方案

播放器在播放音乐时,经常会有曲线随着音乐的节奏在震动,请教那时如何做的,小弟我在音频贞里没有找到相关的信息,用后面的数据如何弄

热度:9933   发布时间:2013-02-26 00:00:00.0
播放器在播放音乐时,经常会有曲线随着音乐的节奏在震动,请问那时怎么做的,我在音频贞里没有找到相关的信息,用后面的数据怎么弄
播放器在播放音乐时,经常会有曲线随着音乐的节奏在震动,请问那时怎么做的,我在音频贞里没有找到相关的信息,用后面的数据怎么弄

------解决方案--------------------------------------------------------
你说的是不是频谱分析??就像Winamp里面的那个吧!!

那个其实很简单,取出512个PCM样本,然后FFT,再Scale一下,就可以输出频谱信息了!
对于波形的话,那就更简单了,直接把PCM样本用绘图函数画出来就行了!

我把Scale的代码给你粘一下, xscale:从0到255包含255个元素的数组, mono_freq: FFT后的数据(要化成实数,虚数是不行的!), intern_vis_data:含有255个元素的int型数组(把这个画出来就行了)

for (i = 0; i < 255; i++)
{
for (j = xscale[i], y = 0; j < xscale[i + 1]; j++)
{
if (mono_freq[0][j] > y)
y = mono_freq[0][j];
}
y >>= 4;
if (y != 0)
{
intern_vis_data[i] = (int)((double)log((double)y) * (double)y_scale * (double)e_const);
if (intern_vis_data[i] > 255)
intern_vis_data[i] = 255;
}
else
intern_vis_data[i] = 0;
}
------解决方案--------------------------------------------------------
  相关解决方案