wl
2025-02-27 90d77d20982e3f688f99a3abe37e91361e73b236
Client/¶­Åìèº/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 ç§’
}