[webkit-dev] phonon and qtwebkit modifications to make it work

Mihai Adrian mihaiadriangl at yahoo.com
Mon Jul 4 11:04:02 PDT 2011


Hello,

I use an older version of qtwebkit, but no modification have been done in the phonon backend part ( MediaPlayerPrivatePhonon.h, MediaPlayerPrivatePhonon.cpp) . I made the following modification to allow HTML5 audio/video make it work with phonon:

MediaPlayerPrivate::MediaPlayerPrivate(MediaPlayer* player)
    : m_player(player)
    , m_networkState(MediaPlayer::Empty)
    , m_readyState(MediaPlayer::HaveNothing)
    , m_mediaObject(new MediaObject())
    , m_videoWidget(new VideoWidget(0))
    , m_audioOutput(new AudioOutput())
    , m_isVisible(false)
{

........

    QTimer::singleShot(100, m_videoWidget, SLOT(show()));  //let event loop bread

  // this is needed for m_videoWidget to catch setting attribute 
  // Qt::WA_DontShowOnScreen .  m_videoWidget will not be shown on the screen
  // but will act as a shown widget. This is needed to be rendered in a QPainter.

    m_firstTime = true;
}


/ /Only this method is called when clicking on the play/pause button, so the 
// logic for play/pause must be implemented here
// webkit calls this function evrey time page loads, so first call is discarded.

void MediaPlayerPrivate::pause()
{
  if (m_firstTime)
  {
    m_firstTime = false;
    return;
  }

  if ( m_mediaObject->state() != Phonon::PlayingState )
  {
    if (m_mediaObject->currentTime() == m_mediaObject->totalTime())
    {
        LOG(Media, "MediaPlayerPrivatePhonon::seek(0)");
        m_mediaObject->seek(0);
    }

    LOG(Media, "MediaPlayerPrivatePhonon::play()");
    m_mediaObject->play();
  }
  else
  {
    LOG(Media, "MediaPlayerPrivatePhonon::pause()");
    m_mediaObject->pause();
  }
}

Without this modifications, HTML5 video doesn't work with phonon. What do you think about ?

Thank you,
Mihai Adrian

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20110704/be2024da/attachment.html>


More information about the webkit-dev mailing list