Chromium Code Reviews| Index: content/renderer/media/android/webmediaplayer_android.cc |
| diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc |
| index 068a13dbcd4cdb36e798e39e9cb0878a18899df7..52068135b9eb8db1062cc372291dcee435653ed6 100644 |
| --- a/content/renderer/media/android/webmediaplayer_android.cc |
| +++ b/content/renderer/media/android/webmediaplayer_android.cc |
| @@ -146,6 +146,7 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid( |
| media_log_(media_log), |
| web_cdm_(NULL), |
| allow_stored_credentials_(false), |
| + is_local_resource_(false), |
| weak_factory_(this) { |
| DCHECK(player_manager_); |
| DCHECK(cdm_manager_); |
| @@ -216,6 +217,7 @@ void WebMediaPlayerAndroid::load(LoadType load_type, |
| } |
| url_ = url; |
| + is_local_resource_ = url_.SchemeIsFile() || url_.SchemeIs("blob"); |
|
amogh.bihani
2014/08/21 09:06:31
Ah! sorry I'll make it to SchemeIsBlob in next PS.
qinmin
2014/08/21 16:43:07
I think you should also check whether the address
|
| int demuxer_client_id = 0; |
| if (player_type_ != MEDIA_PLAYER_TYPE_URL) { |
| RendererDemuxerAndroid* demuxer = |
| @@ -679,7 +681,7 @@ void WebMediaPlayerAndroid::OnMediaMetadataChanged( |
| DCHECK(main_thread_checker_.CalledOnValidThread()); |
| bool need_to_signal_duration_changed = false; |
| - if (url_.SchemeIs("file")) |
| + if (is_local_resource_) |
| UpdateNetworkState(WebMediaPlayer::NetworkStateLoaded); |
| // Update duration, if necessary, prior to ready state updates that may |
| @@ -837,6 +839,8 @@ void WebMediaPlayerAndroid::OnVideoSizeChanged(int width, int height) { |
| void WebMediaPlayerAndroid::OnTimeUpdate(const base::TimeDelta& current_time) { |
| DCHECK(main_thread_checker_.CalledOnValidThread()); |
| current_time_ = current_time.InSecondsF(); |
| + if (is_local_resource_ && current_time_ <= duration()) |
| + buffered_[0].end = current_time_; |
| } |
| void WebMediaPlayerAndroid::OnConnectedToRemoteDevice( |