Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenBoard
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
Nicolas Ollinger
OpenBoard
Commits
4db18c9b
Commit
4db18c9b
authored
Nov 11, 2015
by
agriche
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Replace phonon framework by Qmultimedia classes(QMediPlayer...)
parent
39cc2fdc
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
91 additions
and
41 deletions
+91
-41
UBGraphicsMediaItem.cpp
src/domain/UBGraphicsMediaItem.cpp
+65
-34
UBGraphicsMediaItem.h
src/domain/UBGraphicsMediaItem.h
+26
-7
No files found.
src/domain/UBGraphicsMediaItem.cpp
View file @
4db18c9b
...
...
@@ -24,12 +24,10 @@
#include <QUrl>
#include "UBGraphicsGroupContainerItem.h"
#include "UBGraphicsMediaItem.h"
#include "UBGraphicsMediaItemDelegate.h"
#include "UBGraphicsItemDelegate.h"
#include "UBGraphicsScene.h"
#include "UBGraphicsDelegateFrame.h"
#include "document/UBDocumentProxy.h"
...
...
@@ -51,7 +49,13 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
{
update
();
mMediaPlayer
=
new
QMediaPlayer
(
this
);
//mMediaObject = new Phonon::MediaObject(this);
mMediaObject
=
new
QMediaPlayer
(
this
);
//playlist = new QMediaPlaylist;
//mMediaObject->setPlaylist(playlist);
QString
mediaPath
=
pMediaFileUrl
.
toString
();
if
(
""
==
mediaPath
)
...
...
@@ -61,11 +65,23 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
{
mMediaType
=
mediaType_Video
;
mAudioOutput
=
new
QAudioOutput
(
QAudioFormat
(),
this
);
mMediaPlayer
->
setNotifyInterval
(
50
);
mVideoWidget
=
new
QVideoWidget
();
//mAudioOutput = new Phonon::AudioOutput(Phonon::VideoCategory, this);
QAudioFormat
format
;
// to define
format
.
setByteOrder
(
QAudioFormat
::
LittleEndian
);
format
.
setSampleType
(
QAudioFormat
::
UnSignedInt
);
//mAudioOutput = new QAudioOutput(format, this);
mAudioOutput
=
new
QMediaPlayer
;
//mMediaObject->setTickInterval(50);
mMediaObject
->
setPosition
(
50
);
mMediaPlayer
->
setVideoOutput
(
mVideoWidget
);
//mVideoWidget = new Phonon::VideoWidget(); // owned and destructed by the scene ...
mVideoWidget
=
new
QVideoWidget
();
// owned and destructed by the scene ...
//Phonon::createPath(mMediaObject, mVideoWidget);
mMediaObject
->
setVideoOutput
(
mVideoWidget
);
if
(
mVideoWidget
->
sizeHint
()
==
QSize
(
1
,
1
)){
mVideoWidget
->
resize
(
320
,
240
);
...
...
@@ -75,11 +91,19 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
haveLinkedImage
=
true
;
}
else
if
(
mediaPath
.
toLower
().
contains
(
"audios"
)){
else
if
(
mediaPath
.
toLower
().
contains
(
"audios"
))
{
mMediaType
=
mediaType_Audio
;
mAudioOutput
=
new
QAudioOutput
(
QAudioFormat
(),
this
);
mMediaPlayer
->
setNotifyInterval
(
1000
);
QAudioFormat
format
;
format
.
setByteOrder
(
QAudioFormat
::
LittleEndian
);
format
.
setSampleType
(
QAudioFormat
::
UnSignedInt
);
// mAudioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this);
//mAudioOutput = new QMediaPlayer(format, this);
mAudioOutput
=
new
QMediaPlayer
;
//mMediaObject->setTickInterval(1000);
mAudioWidget
=
new
QWidget
();
mAudioWidget
->
resize
(
320
,
26
);
mAudioWidget
->
setMinimumSize
(
150
,
26
);
...
...
@@ -87,8 +111,16 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
haveLinkedImage
=
false
;
}
//Phonon::createPath(mMediaObject, mAudioOutput);
//mSource = Phonon::MediaSource(pMediaFileUrl);
//mMediaObject->setCurrentSource(mSource);
mMediaObject
->
setMedia
(
pMediaFileUrl
);
// we should create delegate after media objects because delegate uses his properties at creation.
setDelegate
(
new
UBGraphicsMediaItemDelegate
(
this
,
mMediaPlayer
));
setDelegate
(
new
UBGraphicsMediaItemDelegate
(
this
,
mMediaObject
));
// delegate should be created earler because we setWidget calls resize event for graphics proxy widgt.
// resize uses delegate.
...
...
@@ -109,18 +141,15 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
setData
(
UBGraphicsItemData
::
itemLayerType
,
QVariant
(
itemLayerType
::
ObjectItem
));
//Necessary to set if we want z value to be assigned correctly
connect
(
Delegate
(),
&
UBGraphicsItemDelegate
::
showOnDisplayChanged
,
this
,
&
UBGraphicsMediaItem
::
showOnDisplayChanged
);
connect
(
mMediaPlayer
,
&
QMediaPlayer
::
videoAvailableChanged
,
this
,
&
UBGraphicsMediaItem
::
hasMediaChanged
);
connect
(
Delegate
(),
SIGNAL
(
showOnDisplayChanged
(
bool
)),
this
,
SLOT
(
showOnDisplayChanged
(
bool
)));
connect
(
mMediaObject
,
SIGNAL
(
hasVideoChanged
(
bool
)),
this
,
SLOT
(
hasMediaChanged
(
bool
)));
}
UBGraphicsMediaItem
::~
UBGraphicsMediaItem
()
{
if
(
mMedia
Player
)
mMedia
Player
->
stop
();
if
(
mMedia
Object
)
mMedia
Object
->
stop
();
}
...
...
@@ -142,13 +171,13 @@ QVariant UBGraphicsMediaItem::itemChange(GraphicsItemChange change, const QVaria
||
(
change
==
QGraphicsItem
::
ItemSceneChange
)
||
(
change
==
QGraphicsItem
::
ItemVisibleChange
))
{
if
(
mMedia
Player
&&
(
!
isEnabled
()
||
!
isVisible
()
||
!
scene
()))
mMedia
Player
->
pause
();
if
(
mMedia
Object
&&
(
!
isEnabled
()
||
!
isVisible
()
||
!
scene
()))
mMedia
Object
->
pause
();
}
else
if
(
change
==
QGraphicsItem
::
ItemSceneHasChanged
)
{
if
(
!
scene
())
mMedia
Player
->
stop
();
mMedia
Object
->
stop
();
else
{
QString
absoluteMediaFilename
;
...
...
@@ -158,7 +187,11 @@ QVariant UBGraphicsMediaItem::itemChange(GraphicsItemChange change, const QVaria
absoluteMediaFilename
=
mMediaFileUrl
.
toLocalFile
();
if
(
absoluteMediaFilename
.
length
()
>
0
)
mMediaPlayer
->
setMedia
(
QUrl
::
fromLocalFile
(
absoluteMediaFilename
));
//mMediaObject->setCurrentSource(QMediaSource(absoluteMediaFilename));
mMediaObject
->
setMedia
(
QUrl
::
fromLocalFile
(
absoluteMediaFilename
));
}
}
...
...
@@ -192,12 +225,7 @@ void UBGraphicsMediaItem::toggleMute()
void
UBGraphicsMediaItem
::
setMute
(
bool
bMute
)
{
mMuted
=
bMute
;
if
(
bMute
)
mAudioOutput
->
setVolume
(
0
);
else
mAudioOutput
->
setVolume
(
mVolume
);
mAudioOutput
->
setMuted
(
mMuted
);
mMutedByUserAction
=
mMuted
;
sIsMutedByDefault
=
mMuted
;
}
...
...
@@ -205,9 +233,11 @@ void UBGraphicsMediaItem::setMute(bool bMute)
void
UBGraphicsMediaItem
::
hasMediaChanged
(
bool
hasMedia
)
{
if
(
hasMedia
&&
mMedia
Player
->
isSeekable
())
if
(
hasMedia
&&
mMedia
Object
->
isSeekable
())
{
mMediaPlayer
->
setPosition
(
mInitialPos
);
//mMediaObject->seek(mInitialPos);
mMediaObject
->
setPosition
(
mInitialPos
);
UBGraphicsMediaItemDelegate
*
med
=
dynamic_cast
<
UBGraphicsMediaItemDelegate
*>
(
Delegate
());
if
(
med
)
med
->
updateTicker
(
initialPos
());
...
...
@@ -224,7 +254,7 @@ UBGraphicsScene* UBGraphicsMediaItem::scene()
void
UBGraphicsMediaItem
::
activeSceneChanged
()
{
if
(
UBApplication
::
boardController
->
activeScene
()
!=
scene
())
mMedia
Player
->
pause
();
mMedia
Object
->
pause
();
}
...
...
@@ -233,12 +263,12 @@ void UBGraphicsMediaItem::showOnDisplayChanged(bool shown)
if
(
!
shown
)
{
mMuted
=
true
;
mAudioOutput
->
set
Volume
(
0
);
mAudioOutput
->
set
Muted
(
mMuted
);
}
else
if
(
!
mMutedByUserAction
)
{
mMuted
=
false
;
mAudioOutput
->
set
Volume
(
mVolume
);
mAudioOutput
->
set
Muted
(
mMuted
);
}
}
...
...
@@ -322,7 +352,8 @@ void UBGraphicsMediaItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QPointF
eventPos
=
mapFromScene
(
event
->
scenePos
());
QPointF
translation
=
eventPos
-
mouseMovePos
;
setTransform
(
QTransform
::
fromTranslate
(
translation
.
x
(),
translation
.
y
()),
true
);
//translate(translation.x(), translation.y());
setPos
(
translation
.
x
(),
translation
.
y
());
}
mMouseMovePos
=
event
->
scenePos
();
...
...
src/domain/UBGraphicsMediaItem.h
View file @
4db18c9b
...
...
@@ -28,11 +28,19 @@
#ifndef UBGRAPHICSMEDIAITEM_H
#define UBGRAPHICSMEDIAITEM_H
#include <QtWidgets/QGraphicsView>
#include "UBGraphicsProxyWidget.h"
//#include <phonon/AudioOutput>
//#include <phonon/MediaObject>
//#include <phonon/VideoWidget>
#include <QAudioOutput>
#include <QMediaObject>
#include <QMediaPlayer>
#include <Q
VideoWidget
>
#include <Q
MediaService
>
#include "UBGraphicsProxyWidget.h"
#include <QtMultimediaWidgets/QVideoWidget>
#include <QtMultimedia/QVideoFrame>
#include "core/UBApplication.h"
#include "board/UBBoardController.h"
...
...
@@ -65,9 +73,11 @@ public:
virtual
void
mediaFileUrl
(
QUrl
url
){
mMediaFileUrl
=
url
;}
//Phonon::MediaObject* mediaObject() const
QMediaPlayer
*
mediaObject
()
const
{
return
mMedia
Player
;
return
mMedia
Object
;
}
void
setInitialPos
(
qint64
p
)
{
...
...
@@ -82,7 +92,9 @@ public:
return
mMuted
;
}
// Phonon::VideoWidget* videoWidget() const
QVideoWidget
*
videoWidget
()
const
{
return
mVideoWidget
;
}
...
...
@@ -117,9 +129,17 @@ protected:
virtual
void
mouseMoveEvent
(
QGraphicsSceneMouseEvent
*
event
);
virtual
void
clearSource
();
QMediaPlayer
*
mMediaPlayer
;
QVideoWidget
*
mVideoWidget
;
QAudioOutput
*
mAudioOutput
;
//Phonon::MediaObject *mMediaObject;
//Phonon::VideoWidget *mVideoWidget;
//Phonon::AudioOutput *mAudioOutput;
//Phonon::MediaSource mSource;
QMediaPlayer
*
mMediaObject
;
QMediaPlaylist
*
playlist
;
QVideoWidget
*
mVideoWidget
;
// QAudioOutput *mAudioOutput;
QMediaPlayer
*
mAudioOutput
;
QMediaService
*
mSource
;
QWidget
*
mAudioWidget
;
...
...
@@ -128,7 +148,6 @@ private:
bool
mMuted
;
bool
mMutedByUserAction
;
static
bool
sIsMutedByDefault
;
qreal
mVolume
;
QUrl
mMediaFileUrl
;
QString
mMediaSource
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment