如何避免音乐播放时出现微滞后

How to avoid micro lags while music is playing?

本文关键字:滞后 何避免 音乐 播放      更新时间:2023-10-16

我正在用Qt编写Audio Player。我使用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);
});

如何修复此错误?

您需要检查滑块值更改时是否按下滑块。

如果未按下,则表示它只是一个进度事件。

如果按下,则表示用户正在与之交互,因此设置媒体播放器位置

connect(ui->positionSlider, &QSlider::valueChanged, this, [&](int value)
{
    if (ui->positionSlider->isSliderDown())
        player->setPosition(value);
});

顺便说一下,这正是他们在参考示例中所做的。