void SmilPlayer::create(const MessageMms &mms)
{
- m_MediaPlayer.setListener(this);
-
// Pages:
const MsgPageList &pages = mms.getPageList();
for(int i = 0; i < pages.getLength(); ++i)
void SmilPlayer::prepareMedia()
{
- m_MediaPlayer.stop();
+ if(m_MediaPlayer)
+ m_MediaPlayer->stop();
+
SmilPage *page = getCurrentPage();
if(page->hasMedia())
{
- m_MediaPlayer.setUri(page->getMediaPath());
+ if(!m_MediaPlayer)
+ {
+ m_MediaPlayer.reset(new MediaPlayer);
+ m_MediaPlayer->setListener(this);
+ }
+
+ m_MediaPlayer->setUri(page->getMediaPath());
Evas_Object *videoSink = page->getVideoSink();
- m_MediaPlayer.setDisplay(videoSink);
+ m_MediaPlayer->setDisplay(videoSink);
}
+
}
void SmilPlayer::stopMedia()
{
- m_MediaPlayer.pause();
+ if(m_MediaPlayer)
+ m_MediaPlayer->pause();
getCurrentPage()->playAnimation(false);
}
void SmilPlayer::startMedia()
{
- if(getCurrentPage()->hasMedia())
- m_MediaPlayer.start();
+ if(m_MediaPlayer && getCurrentPage()->hasMedia())
+ m_MediaPlayer->start();
getCurrentPage()->playAnimation(true);
}
void SmilPlayer::onMediaPlayerSoundFocusChanged()
{
- if(m_MediaPlayer.isPlaying() && m_MediaPlayer.isFocusChangedCallReason())
+ if(m_MediaPlayer->isPlaying() && m_MediaPlayer->isFocusChangedCallReason())
{
SmilPage *page = getCurrentPage();
if(page)
{
- m_MediaPlayer.pause();
+ m_MediaPlayer->pause();
if(page->hasVideo())
showUnableToPlayVideoNotif();
else if(page->hasAudio())