diff options
| author | Andrei Popescu <andreip@google.com> | 2010-01-11 21:11:21 +0000 |
|---|---|---|
| committer | Andrei Popescu <andreip@google.com> | 2010-01-12 12:50:12 +0000 |
| commit | e83d054d07e84938705c758f55ef5ac701b3acce (patch) | |
| tree | 7756b7f9f8f6c190ea868c31ca219f16ed8a7812 /WebKit/android | |
| parent | c74d807c018da5b7a0f8c89e0e735361c59092ac (diff) | |
| download | external_webkit-e83d054d07e84938705c758f55ef5ac701b3acce.zip external_webkit-e83d054d07e84938705c758f55ef5ac701b3acce.tar.gz external_webkit-e83d054d07e84938705c758f55ef5ac701b3acce.tar.bz2 | |
Implement timeupdate events for video tag.
Fix http://b/issue?id=2210105
Diffstat (limited to 'WebKit/android')
| -rw-r--r-- | WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
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<WebCore::MediaPlayerPrivate*>(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) |
