OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/media/android/webmediaplayer_android.h" | 5 #include "content/renderer/media/android/webmediaplayer_android.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <limits> | 9 #include <limits> |
10 | 10 |
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 if (need_to_signal_duration_changed) | 709 if (need_to_signal_duration_changed) |
710 client_->durationChanged(); | 710 client_->durationChanged(); |
711 } | 711 } |
712 | 712 |
713 void WebMediaPlayerAndroid::OnPlaybackComplete() { | 713 void WebMediaPlayerAndroid::OnPlaybackComplete() { |
714 // When playback is about to finish, android media player often stops | 714 // When playback is about to finish, android media player often stops |
715 // at a time which is smaller than the duration. This makes webkit never | 715 // at a time which is smaller than the duration. This makes webkit never |
716 // know that the playback has finished. To solve this, we set the | 716 // know that the playback has finished. To solve this, we set the |
717 // current time to media duration when OnPlaybackComplete() get called. | 717 // current time to media duration when OnPlaybackComplete() get called. |
718 interpolator_.SetBounds(duration_, duration_, default_tick_clock_.NowTicks()); | 718 interpolator_.SetBounds(duration_, duration_, default_tick_clock_.NowTicks()); |
719 client_->timeChanged(); | 719 client_->timeChanged(true); |
720 | 720 |
721 // If the loop attribute is set, timeChanged() will update the current time | 721 // If the loop attribute is set, timeChanged() will update the current time |
722 // to 0. It will perform a seek to 0. Issue a command to the player to start | 722 // to 0. It will perform a seek to 0. Issue a command to the player to start |
723 // playing after seek completes. | 723 // playing after seek completes. |
724 if (is_playing_ && seeking_ && seek_time_.is_zero()) | 724 if (is_playing_ && seeking_ && seek_time_.is_zero()) |
725 player_manager_->Start(player_id_); | 725 player_manager_->Start(player_id_); |
726 else | 726 else |
727 playback_completed_ = true; | 727 playback_completed_ = true; |
728 } | 728 } |
729 | 729 |
(...skipping 20 matching lines...) Expand all Loading... |
750 if (pending_seek_) { | 750 if (pending_seek_) { |
751 pending_seek_ = false; | 751 pending_seek_ = false; |
752 seek(pending_seek_time_.InSecondsF()); | 752 seek(pending_seek_time_.InSecondsF()); |
753 return; | 753 return; |
754 } | 754 } |
755 interpolator_.SetBounds(current_time, current_time, | 755 interpolator_.SetBounds(current_time, current_time, |
756 default_tick_clock_.NowTicks()); | 756 default_tick_clock_.NowTicks()); |
757 | 757 |
758 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); | 758 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); |
759 | 759 |
760 client_->timeChanged(); | 760 client_->timeChanged(playback_completed_); |
761 } | 761 } |
762 | 762 |
763 void WebMediaPlayerAndroid::OnMediaError(int error_type) { | 763 void WebMediaPlayerAndroid::OnMediaError(int error_type) { |
764 switch (error_type) { | 764 switch (error_type) { |
765 case MediaPlayerAndroid::MEDIA_ERROR_FORMAT: | 765 case MediaPlayerAndroid::MEDIA_ERROR_FORMAT: |
766 UpdateNetworkState(WebMediaPlayer::NetworkStateFormatError); | 766 UpdateNetworkState(WebMediaPlayer::NetworkStateFormatError); |
767 break; | 767 break; |
768 case MediaPlayerAndroid::MEDIA_ERROR_DECODE: | 768 case MediaPlayerAndroid::MEDIA_ERROR_DECODE: |
769 UpdateNetworkState(WebMediaPlayer::NetworkStateDecodeError); | 769 UpdateNetworkState(WebMediaPlayer::NetworkStateDecodeError); |
770 break; | 770 break; |
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1333 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1333 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
1334 switches::kDisableMediaSuspend)) { | 1334 switches::kDisableMediaSuspend)) { |
1335 return false; | 1335 return false; |
1336 } | 1336 } |
1337 | 1337 |
1338 return base::FeatureList::IsEnabled(media::kResumeBackgroundVideo) && | 1338 return base::FeatureList::IsEnabled(media::kResumeBackgroundVideo) && |
1339 hasAudio() && !isRemote() && delegate_ && delegate_->IsHidden(); | 1339 hasAudio() && !isRemote() && delegate_ && delegate_->IsHidden(); |
1340 } | 1340 } |
1341 | 1341 |
1342 } // namespace content | 1342 } // namespace content |
OLD | NEW |