summaryrefslogtreecommitdiffstats
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
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
-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");