From 475b9b1187de24bf8d38db31c64f26c7977c3fd8 Mon Sep 17 00:00:00 2001 From: dpt <1013505110@qq.com> Date: 星期五, 21 二月 2025 11:40:19 +0800 Subject: [PATCH] 2.20更新 --- Client/董澎韬/code/facexmainwindow.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 42 insertions(+), 5 deletions(-) diff --git "a/Client/\350\221\243\346\276\216\351\237\254/code/facexmainwindow.cpp" "b/Client/\350\221\243\346\276\216\351\237\254/code/facexmainwindow.cpp" index 4d398d3..c2e6294 100644 --- "a/Client/\350\221\243\346\276\216\351\237\254/code/facexmainwindow.cpp" +++ "b/Client/\350\221\243\346\276\216\351\237\254/code/facexmainwindow.cpp" @@ -8,6 +8,7 @@ #include <QScreen> #include <QException> #include <QThread> +#include <QWheelEvent> FaceXMainWindow::FaceXMainWindow(QWidget *parent) : QMainWindow(parent), @@ -35,7 +36,7 @@ m_videowidget->resize(ui->label_video->size()); m_videowidget->move(ui->label_video->pos()); m_videowidget->show(); - ui->label_video->show(); + ui->label_video->hide(); // 杩炴帴 QFFmpeg 鐨勪俊鍙� connect(m_ffmpeg, &QFFmpeg::GetImage, this, &FaceXMainWindow::SetImage, Qt::QueuedConnection); @@ -45,6 +46,9 @@ QMessageBox::critical(this, "鎾斁閿欒", m_player->errorString()); }); + // 杩炴帴鎾斁鍣ㄧ殑浣嶇疆鏇存柊淇″彿 + connect(m_player, &QMediaPlayer::positionChanged, this, &FaceXMainWindow::updateSliderPosition); + connect(ui->horizontalSlider, &QSlider::sliderMoved, this, &FaceXMainWindow::on_sliderPosition_valueChanged); } @@ -161,6 +165,18 @@ } } +void FaceXMainWindow::playOrPause() +{ + isPlaying = !isPlaying; + if (isPlaying) { + m_player->play(); + ui->btn_play->setStyleSheet("border-image: url(:/image/pause.png)"); + } else { + m_player->pause(); + ui->btn_play->setStyleSheet("border-image: url(:/image/start.png)"); + } +} + //鎾斁鎸夐挳 void FaceXMainWindow::on_btn_play_clicked() { @@ -171,6 +187,7 @@ m_rtspThread->start(); } } + playOrPause(); } else { QMessageBox::critical(this, "閿欒", "鎾斁鍣ㄦ湭鍒濆鍖�"); } @@ -189,16 +206,36 @@ void FaceXMainWindow::SetImage(const QImage &image) { - qDebug() << "鍥惧儚灏哄: " << image.width() << "x" << image.height(); - qDebug() << "鍥惧儚鏍煎紡: " << image.format(); - qDebug() << "鎺ユ敹鍒板浘鍍忎俊鍙�"; if (!image.isNull()) { ui->label_video->setScaledContents(true); // 璁剧疆鍥惧儚鑷姩缂╂斁 ui->label_video->setPixmap(QPixmap::fromImage(image)); ui->label_video->adjustSize(); ui->label_video->update(); - qDebug() << "鍥惧儚宸叉洿鏂�"; } else { qDebug() << "鎺ユ敹鍒扮殑鍥惧儚涓虹┖"; } } + +//鏇存柊婊戝潡鐨勪綅缃� +void FaceXMainWindow::updateSliderPosition() +{ + ui->horizontalSlider->setValue(m_player->position()); +} + +//鎷栧姩婊戝潡鏉ユ帶鍒舵挱鏀捐繘搴� +void FaceXMainWindow::on_sliderPosition_valueChanged(int value) +{ + m_player->setPosition(value); +} + +void FaceXMainWindow::on_btn_back_clicked() +{ + int currentPosition = m_player->position(); + m_player->setPosition(currentPosition - 10000); // 鍚庨�� 10 绉� +} + +void FaceXMainWindow::on_btn_forward_clicked() +{ + int currentPosition = m_player->position(); + m_player->setPosition(currentPosition + 10000); // 鍓嶈繘 10 绉� +} -- Gitblit v1.8.0