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 <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 if (paused()) | 288 if (paused()) |
289 player_manager_->Start(player_id_); | 289 player_manager_->Start(player_id_); |
290 UpdatePlayingState(true); | 290 UpdatePlayingState(true); |
291 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | 291 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); |
292 } | 292 } |
293 | 293 |
294 void WebMediaPlayerAndroid::pause() { | 294 void WebMediaPlayerAndroid::pause() { |
295 Pause(true); | 295 Pause(true); |
296 } | 296 } |
297 | 297 |
| 298 void WebMediaPlayerAndroid::requestRemotePlayback() { |
| 299 player_manager_->RequestRemotePlayback(player_id_); |
| 300 } |
| 301 |
| 302 void WebMediaPlayerAndroid::requestRemotePlaybackControl() { |
| 303 player_manager_->RequestRemotePlaybackControl(player_id_); |
| 304 } |
| 305 |
298 void WebMediaPlayerAndroid::seek(double seconds) { | 306 void WebMediaPlayerAndroid::seek(double seconds) { |
299 DCHECK(main_thread_checker_.CalledOnValidThread()); | 307 DCHECK(main_thread_checker_.CalledOnValidThread()); |
300 DVLOG(1) << __FUNCTION__ << "(" << seconds << ")"; | 308 DVLOG(1) << __FUNCTION__ << "(" << seconds << ")"; |
301 | 309 |
302 base::TimeDelta new_seek_time = ConvertSecondsToTimestamp(seconds); | 310 base::TimeDelta new_seek_time = ConvertSecondsToTimestamp(seconds); |
303 | 311 |
304 if (seeking_) { | 312 if (seeking_) { |
305 if (new_seek_time == seek_time_) { | 313 if (new_seek_time == seek_time_) { |
306 if (media_source_delegate_) { | 314 if (media_source_delegate_) { |
307 if (!pending_seek_) { | 315 if (!pending_seek_) { |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
804 current_time_ = current_time.InSecondsF(); | 812 current_time_ = current_time.InSecondsF(); |
805 } | 813 } |
806 | 814 |
807 void WebMediaPlayerAndroid::OnConnectedToRemoteDevice( | 815 void WebMediaPlayerAndroid::OnConnectedToRemoteDevice( |
808 const std::string& remote_playback_message) { | 816 const std::string& remote_playback_message) { |
809 DCHECK(main_thread_checker_.CalledOnValidThread()); | 817 DCHECK(main_thread_checker_.CalledOnValidThread()); |
810 DCHECK(!media_source_delegate_); | 818 DCHECK(!media_source_delegate_); |
811 DrawRemotePlaybackText(remote_playback_message); | 819 DrawRemotePlaybackText(remote_playback_message); |
812 is_remote_ = true; | 820 is_remote_ = true; |
813 SetNeedsEstablishPeer(false); | 821 SetNeedsEstablishPeer(false); |
| 822 client_->connectedToRemoteDevice(); |
814 } | 823 } |
815 | 824 |
816 void WebMediaPlayerAndroid::OnDisconnectedFromRemoteDevice() { | 825 void WebMediaPlayerAndroid::OnDisconnectedFromRemoteDevice() { |
817 DCHECK(main_thread_checker_.CalledOnValidThread()); | 826 DCHECK(main_thread_checker_.CalledOnValidThread()); |
818 DCHECK(!media_source_delegate_); | 827 DCHECK(!media_source_delegate_); |
819 SetNeedsEstablishPeer(true); | 828 SetNeedsEstablishPeer(true); |
820 if (!paused()) | 829 if (!paused()) |
821 EstablishSurfaceTexturePeer(); | 830 EstablishSurfaceTexturePeer(); |
822 is_remote_ = false; | 831 is_remote_ = false; |
823 ReallocateVideoFrame(); | 832 ReallocateVideoFrame(); |
| 833 client_->disconnectedFromRemoteDevice(); |
824 } | 834 } |
825 | 835 |
826 void WebMediaPlayerAndroid::OnDidEnterFullscreen() { | 836 void WebMediaPlayerAndroid::OnDidEnterFullscreen() { |
827 if (!player_manager_->IsInFullscreen(frame_)) | 837 if (!player_manager_->IsInFullscreen(frame_)) |
828 player_manager_->DidEnterFullscreen(frame_); | 838 player_manager_->DidEnterFullscreen(frame_); |
829 } | 839 } |
830 | 840 |
831 void WebMediaPlayerAndroid::OnDidExitFullscreen() { | 841 void WebMediaPlayerAndroid::OnDidExitFullscreen() { |
832 // |needs_external_surface_| is always false on non-TV devices. | 842 // |needs_external_surface_| is always false on non-TV devices. |
833 if (!needs_external_surface_) | 843 if (!needs_external_surface_) |
(...skipping 19 matching lines...) Expand all Loading... |
853 | 863 |
854 void WebMediaPlayerAndroid::OnMediaPlayerPause() { | 864 void WebMediaPlayerAndroid::OnMediaPlayerPause() { |
855 UpdatePlayingState(false); | 865 UpdatePlayingState(false); |
856 client_->playbackStateChanged(); | 866 client_->playbackStateChanged(); |
857 } | 867 } |
858 | 868 |
859 void WebMediaPlayerAndroid::OnRequestFullscreen() { | 869 void WebMediaPlayerAndroid::OnRequestFullscreen() { |
860 client_->requestFullscreen(); | 870 client_->requestFullscreen(); |
861 } | 871 } |
862 | 872 |
| 873 void WebMediaPlayerAndroid::OnRemoteRouteAvailabilityChanged( |
| 874 bool routes_available) { |
| 875 client_->remoteRouteAvailabilityChanged(routes_available); |
| 876 } |
| 877 |
863 void WebMediaPlayerAndroid::OnDurationChanged(const base::TimeDelta& duration) { | 878 void WebMediaPlayerAndroid::OnDurationChanged(const base::TimeDelta& duration) { |
864 DCHECK(main_thread_checker_.CalledOnValidThread()); | 879 DCHECK(main_thread_checker_.CalledOnValidThread()); |
865 // Only MSE |player_type_| registers this callback. | 880 // Only MSE |player_type_| registers this callback. |
866 DCHECK_EQ(player_type_, MEDIA_PLAYER_TYPE_MEDIA_SOURCE); | 881 DCHECK_EQ(player_type_, MEDIA_PLAYER_TYPE_MEDIA_SOURCE); |
867 | 882 |
868 // Cache the new duration value and trust it over any subsequent duration | 883 // Cache the new duration value and trust it over any subsequent duration |
869 // values received in OnMediaMetadataChanged(). | 884 // values received in OnMediaMetadataChanged(). |
870 duration_ = duration; | 885 duration_ = duration; |
871 ignore_metadata_duration_change_ = true; | 886 ignore_metadata_duration_change_ = true; |
872 | 887 |
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1602 player_manager_->EnterFullscreen(player_id_, frame_); | 1617 player_manager_->EnterFullscreen(player_id_, frame_); |
1603 SetNeedsEstablishPeer(false); | 1618 SetNeedsEstablishPeer(false); |
1604 } | 1619 } |
1605 } | 1620 } |
1606 | 1621 |
1607 bool WebMediaPlayerAndroid::canEnterFullscreen() const { | 1622 bool WebMediaPlayerAndroid::canEnterFullscreen() const { |
1608 return player_manager_->CanEnterFullscreen(frame_); | 1623 return player_manager_->CanEnterFullscreen(frame_); |
1609 } | 1624 } |
1610 | 1625 |
1611 } // namespace content | 1626 } // namespace content |
OLD | NEW |