| | |
| | | #include <QScreen> |
| | | #include <QException> |
| | | #include <QThread> |
| | | #include <QWheelEvent> |
| | | |
| | | FaceXMainWindow::FaceXMainWindow(QWidget *parent) : |
| | | QMainWindow(parent), |
| | |
| | | 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); |
| | |
| | | QMessageBox::critical(this, "ææ¾é误", m_player->errorString()); |
| | | }); |
| | | |
| | | // è¿æ¥ææ¾å¨çä½ç½®æ´æ°ä¿¡å· |
| | | connect(m_player, &QMediaPlayer::positionChanged, this, &FaceXMainWindow::updateSliderPosition); |
| | | connect(ui->horizontalSlider, &QSlider::sliderMoved, this, &FaceXMainWindow::on_sliderPosition_valueChanged); |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | 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() |
| | | { |
| | |
| | | m_rtspThread->start(); |
| | | } |
| | | } |
| | | playOrPause(); |
| | | } else { |
| | | QMessageBox::critical(this, "é误", "ææ¾å¨æªåå§å"); |
| | | } |
| | |
| | | |
| | | 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 ç§ |
| | | } |