widget.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "widget.h"
  2. #include "./ui_widget.h"
  3. #include <QFileDialog>
  4. #include "spdlog/spdlog.h"
  5. Widget::Widget(QWidget *parent)
  6. : QWidget(parent)
  7. , ui(new Ui::Widget)
  8. {
  9. ui->setupUi(this);
  10. /* 加载动态库 */
  11. loadVideoPlayerLibrary();
  12. /* 创建播放器,并设置窗口 */
  13. m_player = createPlayer();
  14. if(m_player == nullptr) {
  15. SPDLOG_ERROR("创建播放器失败");
  16. return;
  17. }
  18. m_player->setWidgetParent(ui->widget_display, true);
  19. m_playerWidget = m_player->getPlayWidget();
  20. if(m_playerWidget == nullptr) {
  21. SPDLOG_ERROR("获取播放器窗口失败");
  22. return;
  23. }
  24. }
  25. Widget::~Widget()
  26. {
  27. if(m_player != nullptr) {
  28. /* 销毁播放器 */
  29. destroyPlayer(m_player);
  30. m_player = nullptr;
  31. }
  32. delete ui;
  33. }
  34. void Widget::on_pBtn_openFile_clicked()
  35. {
  36. // 打开文件对话框
  37. QString fileName = QFileDialog::getOpenFileName(this, tr("打开视频文件"), "", tr("视频文件 (*.mp4 *.avi *.mkv *.flv *.mov)"));
  38. if (fileName.isEmpty()) {
  39. SPDLOG_WARN("未选择视频文件");
  40. return;
  41. }
  42. m_player->openPlayVedio(fileName);
  43. SPDLOG_INFO("打开视频文件: {}", fileName.toStdString());
  44. }
  45. void Widget::on_pBtn_play_clicked()
  46. {
  47. m_player->play();
  48. }
  49. void Widget::resizeEvent(QResizeEvent *event)
  50. {
  51. if (m_playerWidget) {
  52. m_playerWidget->setGeometry(0, 0, ui->widget_display->width(), ui->widget_display->height());
  53. }
  54. QWidget::resizeEvent(event);
  55. }