Qt/C++ 音视频开发 - VLC 解码播放(代码+部署测试)
#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();
}