17 #include "soundplayer.h"
18 #include <QMediaPlayer>
19 #include "soundclip.h"
21 SoundPlayer::SoundPlayer( )
26 SoundPlayer::~SoundPlayer()
32 Q_ASSERT( clip !=
nullptr );
35 mMediaPlayer =
new QMediaPlayer(
this );
36 mMediaPlayer->setMedia( QUrl::fromLocalFile( clip->fileName() ) );
39 clip->attachPlayer(
this );
42 qDebug() <<
"Seekable = " << mMediaPlayer->isSeekable();
45 void SoundPlayer::onKeyFrameDestroy(
KeyFrame* keyFrame )
50 bool SoundPlayer::isValid()
54 return ( mMediaPlayer->error() == QMediaPlayer::NoError );
59 void SoundPlayer::play()
67 void SoundPlayer::stop()
75 int64_t SoundPlayer::duration()
79 return mMediaPlayer->duration();
84 void SoundPlayer::setMediaPlayerPosition(qint64 pos)
88 mMediaPlayer->setPosition(pos);
92 void SoundPlayer::makeConnections()
94 auto errorSignal =
static_cast< void ( QMediaPlayer::* )( QMediaPlayer::Error )
>( &QMediaPlayer::error );
95 connect( mMediaPlayer, errorSignal,
this, [
this ]( QMediaPlayer::Error err )
97 qDebug() <<
"MediaPlayer Error: " << err;
100 connect( mMediaPlayer, &QMediaPlayer::durationChanged, [
this ]( qint64 duration )
102 qDebug() <<
"MediaPlayer durationChanged :" << duration;
103 emit durationChanged(
this, duration );