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