从频道获得最高级别:
BASS_ChannelGetLevelEx(chan, levels, 0.02, BASS_LEVEL_STEREO );
这个函数我用相同的频率调用线程
void Thread::run()
{
while(!m_abort)
{
emit SetLevels();
QThread::msleep(20);
}
}
通过QPainter绘制电平表
发生了什么
疯狂奔跑,急剧跳跃。但必须顺利
如何让它顺利进行?
答案 0 :(得分:0)
当您的新峰值大于当前峰值时,只需指定新值即可。如果它小于那么以对数方式减小当前值,就像那样..
float factor = 0.10;
cur_left_value = cur_left_value - factor * (cur_left_value - new_left_value);
因素越大,您的峰值计数越快"下降"。您必须有一个计时器或线程,以连续使用上述逻辑分配最新(新)峰值。