summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-01-17 18:07:48 +0000
committerBen Murdoch <benm@google.com>2011-01-19 11:47:40 +0000
commiteecb7100325b3007fba928baa2b055907a2fc40a (patch)
treee66b7c9aef4d50bd9da8b73f57193f2b9142127e /WebKit
parentc1c6bc5bc9477cb924383e57f33d76e8f1ed1865 (diff)
downloadexternal_webkit-eecb7100325b3007fba928baa2b055907a2fc40a.zip
external_webkit-eecb7100325b3007fba928baa2b055907a2fc40a.tar.gz
external_webkit-eecb7100325b3007fba928baa2b055907a2fc40a.tar.bz2
Maintain the seek position for HTML5 Video
When the video is paused, remember where we got to so that when the video is started again we can seek to the correct position and continue where we left off. Requires a change in frameworks/base. (I6b92289d4ef36bba1e0429327917533a4101655d) Bug:3303721 Change-Id: I6001f45a362f491e9040c8b52260d0a08fb8504f
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
index c562bb4..2158075 100644
--- a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
@@ -149,7 +149,6 @@ void MediaPlayerPrivate::onEnded() {
m_currentTime = duration();
m_player->timeChanged();
m_paused = true;
- m_currentTime = 0;
m_hasVideo = false;
m_networkState = MediaPlayer::Idle;
m_readyState = MediaPlayer::HaveNothing;
@@ -157,7 +156,6 @@ void MediaPlayerPrivate::onEnded() {
void MediaPlayerPrivate::onPaused() {
m_paused = true;
- m_currentTime = 0;
m_hasVideo = false;
m_networkState = MediaPlayer::Idle;
m_readyState = MediaPlayer::HaveNothing;
@@ -189,8 +187,12 @@ public:
return;
m_paused = false;
+
+ if (m_currentTime == duration())
+ m_currentTime = 0;
+
jstring jUrl = wtfStringToJstring(env, m_url);
- env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_play, jUrl);
+ env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_play, jUrl, static_cast<jint>(m_currentTime * 1000.0f));
env->DeleteLocalRef(jUrl);
checkException(env);
@@ -272,7 +274,7 @@ public:
m_glue = new JavaGlue;
m_glue->m_getInstance = env->GetStaticMethodID(clazz, "getInstance", "(Landroid/webkit/WebViewCore;I)Landroid/webkit/HTML5VideoViewProxy;");
m_glue->m_loadPoster = env->GetMethodID(clazz, "loadPoster", "(Ljava/lang/String;)V");
- m_glue->m_play = env->GetMethodID(clazz, "play", "(Ljava/lang/String;)V");
+ m_glue->m_play = env->GetMethodID(clazz, "play", "(Ljava/lang/String;I)V");
m_glue->m_teardown = env->GetMethodID(clazz, "teardown", "()V");
m_glue->m_seek = env->GetMethodID(clazz, "seek", "(I)V");