Qt/C++ 音视频开发 - VLC 解码播放(代码+部署测试)

时间:2025-05-11 08:59:40
#include <QApplication> #include <QWidget> #include <QPushButton> #include <QVBoxLayout> #include <vlc/> class VLCPlayer : public QWidget { Q_OBJECT public: VLCPlayer(QWidget* parent = nullptr); private slots: void openMedia(); private: libvlc_instance_t* vlcInstance; libvlc_media_player_t* mediaPlayer; }; VLCPlayer::VLCPlayer(QWidget* parent) : QWidget(parent), vlcInstance(nullptr), mediaPlayer(nullptr) { vlcInstance = libvlc_new(0, nullptr); mediaPlayer = libvlc_media_player_new(vlcInstance); QVBoxLayout* layout = new QVBoxLayout(this); QPushButton* openButton = new QPushButton("Open", this); layout->addWidget(openButton); connect(openButton, &QPushButton::clicked, this, &VLCPlayer::openMedia); } void VLCPlayer::openMedia() { QString filePath = QFileDialog::getOpenFileName(this, "Open Media", "", "Media Files (*.*)"); if (!filePath.isEmpty()) { libvlc_media_t* media = libvlc_media_new_path(vlcInstance, filePath.toStdString().c_str()); libvlc_media_player_set_media(mediaPlayer, media); libvlc_media_release(media); libvlc_media_player_play(mediaPlayer); } } int main(int argc, char *argv[]) { QApplication app(argc, argv); VLCPlayer player; player.show(); return app.exec(); }