QMediaPlayer pause()过后获取的position是精确的

如题,其position就是准确的position,这里我给出测试代码:(大概原理就是有两个timer,一个timer会让QMediaPlayer在某个时候pause(),并在pause()之后输出一个pause完毕的瞬间获取的position;另一个timer则高频率获取QMediaPlayer的position(),这样子对比pause完毕的瞬间输出的position和后续高频率timer输出的position就可以知道pause()后的position还有没有变化,如果没有变化那么pause()后瞬间获取的position就是准确的)

    QMediaPlayer *player = new QMediaPlayer;
    QAudioOutput *audioOutput = new QAudioOutput;
    audioOutput->setVolume(0.5);
    player->setAudioOutput(audioOutput);
    player->setSource(QUrl::fromLocalFile("C:/Users/me/Music/1.flac"));


    QTimer *timer_10s = new QTimer;
    timer_10s->setSingleShot(true);
    timer_10s->setTimerType(Qt::PreciseTimer);
    timer_10s->setInterval(16350);

    QTimer *timer_1ms = new QTimer;
    timer_1ms->setSingleShot(false);
    timer_1ms->setTimerType(Qt::PreciseTimer);
    timer_1ms->setInterval(1);

    QObject::connect(timer_10s, &QTimer::timeout, [=](){
        player->pause();
        qDebug() << "paused pos:" <<  player->position();
    });

    QObject::connect(timer_1ms, &QTimer::timeout, [=](){
        qDebug() << "pos:" <<  player->position();
        // if(!player->isPlaying())
        //     timer_1ms->stop();
    });

    player->play();
    timer_10s->start();
    timer_1ms->start();

注意包含一下头文件:

#include <QMediaPlayer>
#include <QAudioOutput>
#include <QDebug>
#include <QTimer>

输出如下

pos: 16213
pos: 16213
pos: 16213
paused pos: 16213
pos: 16213
pos: 16213
pos: 16213
pos: 16213

所以pause()过后获取的position是精确的


知识共享许可协议


本文由 CharSaMa's blog 创作,采用

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0)
授权。




  • 允许行为:标注作者及原文出处,衍生内容需沿用相同协议

  • 禁止行为:商业用途(包括广告、付费内容、商品推广等)



© 2025 CharSaMa's blog。协议全文:法律文本

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇