if (m_audioSessionManager && !m_audioSessionManager->setSoundState(ASM_STATE_PLAYING))
return;
#endif
+
+ if (m_playBinReady == false) {
+ m_playerDeferredState = 1; // play
+ return;
+ }
+
+ m_playerDeferredState = -1; // ignore
+
if (changePipelineState(GST_STATE_PLAYING)) {
m_isEndReached = false;
LOG_MEDIA_MESSAGE("Play");
if (m_audioSessionManager && !m_audioSessionManager->setSoundState(ASM_STATE_PAUSE))
return;
#endif
+
+ if (m_playBinReady == false) {
+ m_playerDeferredState = 0; // pause
+ return;
+ }
+
+ m_playerDeferredState = -1; // ignore
+
if (m_isEndReached)
return;
{
ASSERT(!m_playBin);
+ m_playerDeferredState = -1; // ignore
+ m_playBinReady = false;
+
// gst_element_factory_make() returns a floating reference so
// we should not adopt.
m_playBin = gst_element_factory_make(gPlaybinName, "play");
#else
createAudioSink();
#endif
+
+ m_playBinReady = true;
+
+ if (m_playerDeferredState == 1)
+ play();
+ else if (m_playerDeferredState == 0)
+ pause();
+
+ m_playerDeferredState = -1;
}
#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER)