From e83d054d07e84938705c758f55ef5ac701b3acce Mon Sep 17 00:00:00 2001 From: Andrei Popescu Date: Mon, 11 Jan 2010 21:11:21 +0000 Subject: Implement timeupdate events for video tag. Fix http://b/issue?id=2210105 --- .../WebCoreSupport/MediaPlayerPrivateAndroid.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'WebKit/android') diff --git a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp index 00e973e..1bb8802 100644 --- a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp +++ b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp @@ -121,7 +121,7 @@ bool MediaPlayerPrivate::hasAudio() const bool MediaPlayerPrivate::hasVideo() const { - return false; + return m_hasVideo; } void MediaPlayerPrivate::setVisible(bool visible) @@ -282,6 +282,7 @@ MediaPlayerPrivate::MediaPlayerPrivate(MediaPlayer* player) m_duration(6000), m_currentTime(0), m_paused(true), + m_hasVideo(false), m_readyState(MediaPlayer::HaveNothing), m_networkState(MediaPlayer::Empty), m_poster(0), @@ -352,6 +353,7 @@ void MediaPlayerPrivate::onPrepared(int duration, int width, int height) { m_duration = duration / 1000.0f; m_naturalSize = IntSize(width, height); m_naturalSizeUnknown = false; + m_hasVideo = true; m_player->durationChanged(); m_player->sizeChanged(); } @@ -361,6 +363,7 @@ void MediaPlayerPrivate::onEnded() { m_player->timeChanged(); m_paused = true; m_currentTime = 0; + m_hasVideo = false; m_networkState = MediaPlayer::Idle; m_readyState = MediaPlayer::HaveNothing; } @@ -379,6 +382,11 @@ void MediaPlayerPrivate::onPosterFetched(SkBitmap* poster) { } } +void MediaPlayerPrivate::onTimeupdate(int position) { + m_currentTime = position / 1000.0f; + m_player->timeChanged(); +} + } namespace android { @@ -408,6 +416,13 @@ static void OnPosterFetched(JNIEnv* env, jobject obj, jobject poster, int pointe player->onPosterFetched(posterNative); } +static void OnTimeupdate(JNIEnv* env, jobject obj, int position, int pointer) { + if (pointer) { + WebCore::MediaPlayerPrivate* player = reinterpret_cast(pointer); + player->onTimeupdate(position); + } +} + /* * JNI registration */ @@ -418,6 +433,8 @@ static JNINativeMethod g_MediaPlayerMethods[] = { (void*) OnEnded }, { "nativeOnPosterFetched", "(Landroid/graphics/Bitmap;I)V", (void*) OnPosterFetched }, + { "nativeOnTimeupdate", "(II)V", + (void*) OnTimeupdate }, }; int register_mediaplayer(JNIEnv* env) -- cgit v1.1