我在Qt写的音频播放器。我使用QMediaPlayer。我尝试将音乐位置与QSlider
连接起来,但是当2连接工作时,它会产生微滞后。那是我的代码:
connect(player, &QMediaPlayer::positionChanged, this, [&](qint64 value){
int pos = static_cast<int>(value);
ui->positionSlider->setValue(pos);
});
connect(ui->positionSlider, &QSlider::valueChanged, this, [&](int value){
player->setPosition(value);
});
如何修复此错误?
答案 0 :(得分:4)
您需要在滑块值更改时检查slider is pressed是否正确。
如果没有按下,则表示这只是一个进展事件。
如果按下,则表示用户正在与之交互,因此设置了媒体播放器位置
connect(ui->positionSlider, &QSlider::valueChanged, this, [&](int value)
{
if (ui->positionSlider->isSliderDown())
player->setPosition(value);
});
顺便说一句,这正是他们在reference example中所做的。