安装库:
sudo apt-get install libvlc-dev
sudo apt-get install vlc
class MediaPlayer : public QMainWindow
{
Q_OBJECT
public:
explicit MediaPlayer(QWidget *parent = 0);
~MediaPlayer();
private slots:
void OnVideoPlayButtonClicked();
void OnVideoStopButtonClicked();
void OnProgressSliderValueChanged(int value);
void OnVolumeSliderValueChanged(int value);
void OnActionOpenTriggered();
void UpdateUserInterface();
private:
Ui::MediaPlayer * ui;
libvlc_instance_t* m_pInstance;
libvlc_media_player_t* m_pVlcPlayer;
int image_width;
int image_height;
DisplayWidget* m_pDisplayWidget;
MediaPlayStatus m_eMediaPlayStatus;
QTimer* m_updateTimer;
private:
void MediaPlayerSetDrawableWindow(libvlc_media_player_t* player);
void MediaPlayerPlay();
void MediaPlayerStop();
void ShowFrame(QImage image);
int GetImageWidth(){return image_width;}
int GetImageHeight(){return image_height;}
static void* lockCallback(void *opaque, void **plane);
static void unlockCallback(void *opaque, void *picture, void *const *plane);
static void displayCallback(void *opaque, void *picture);
};
#include
#include
#include
#include
#include "mediaplayer.h"
#include "ui_mediaplayer.h"
unsigned char* video_callback_outBuffer=NULL;
QMutex buff_Mutex;
MediaPlayer::MediaPlayer(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MediaPlayer)
{
ui->setupUi(this);
m_pInstance=libvlc_new(0,NULL);
if(m_pInstance ==NULL){
qDebug()<
}else{