NDEVR
API Documentation
QTMediaCameraView.h
1#pragma once
2#if NDEVR_SUPPORTS_QMEDIA_PLAYER
3#include <NDEVR/PhysicalCameraView.h>
4#include <QMediaPlayer>
5#include <QVideoWidget>
6#include <QVideoEncoderSettings>
7namespace NDEVR
8{
13 class QTMediaCameraView : public PhysicalCameraView
14 {
20 QTMediaCameraView(DynamicPointer<Camera>& camera, QWidget* parent)
21 : PhysicalCameraView(camera, parent)
22 , m_media_player(nullptr)
23 , m_video_widget(nullptr)
24 {
25 init();
26 m_media_player = new QMediaPlayer(this, QMediaPlayer::StreamPlayback);
27 m_video_widget = new QVideoWidget();
28 connect(m_media_player, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(vlcError()));
29 uint04 insert_location = ui->stacked_widget->indexOf(ui->view_panel);
30 ui->stacked_widget->insertWidget(insert_location, m_video_widget);
31 ui->stacked_widget->removeWidget(ui->view_panel);
32 m_media_player->setVideoOutput(m_video_widget);
33 StringView connection_id = m_camera->camera_source.get();
34 if (connection_id.size() > 0)
35 setCameraSource(connection_id);
36 }
42 bool setCameraSource(const String& connection_id) override
43 {
44 m_media_player->setMedia(QUrl(connection_id.c_str()));
45 //m_media_player->setMuted(true);
46 m_media_player->play();
47 displayCamera();
48 return true;
49 }
53 void handleError() override
54 {
55 if (m_media_player)
56 {
57 String error(m_media_player->errorString());
58 if (error.size() > 0)
59 {
60 QTErrorDialog::CreateErrorDialog(Exception("Video Error", error));
61 }
62 }
63 }
64 QMediaPlayer* m_media_player;
65 QVideoWidget* m_video_widget;
66 };
67}
68#endif
A Viewport that represents a physical camera stream, or real world camera view.
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...