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/android/build_info.h" | 9 #include "base/android/build_info.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 player_manager_->Start(player_id_); | 327 player_manager_->Start(player_id_); |
328 UpdatePlayingState(true); | 328 UpdatePlayingState(true); |
329 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | 329 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); |
330 } | 330 } |
331 | 331 |
332 void WebMediaPlayerAndroid::pause() { | 332 void WebMediaPlayerAndroid::pause() { |
333 DCHECK(main_thread_checker_.CalledOnValidThread()); | 333 DCHECK(main_thread_checker_.CalledOnValidThread()); |
334 Pause(true); | 334 Pause(true); |
335 } | 335 } |
336 | 336 |
| 337 void WebMediaPlayerAndroid::requestRemotePlayback() { |
| 338 player_manager_->RequestRemotePlayback(player_id_); |
| 339 } |
| 340 |
| 341 void WebMediaPlayerAndroid::requestRemotePlaybackControl() { |
| 342 player_manager_->RequestRemotePlaybackControl(player_id_); |
| 343 } |
| 344 |
337 void WebMediaPlayerAndroid::seek(double seconds) { | 345 void WebMediaPlayerAndroid::seek(double seconds) { |
338 DCHECK(main_thread_checker_.CalledOnValidThread()); | 346 DCHECK(main_thread_checker_.CalledOnValidThread()); |
339 DVLOG(1) << __FUNCTION__ << "(" << seconds << ")"; | 347 DVLOG(1) << __FUNCTION__ << "(" << seconds << ")"; |
340 | 348 |
341 base::TimeDelta new_seek_time = media::ConvertSecondsToTimestamp(seconds); | 349 base::TimeDelta new_seek_time = media::ConvertSecondsToTimestamp(seconds); |
342 | 350 |
343 if (seeking_) { | 351 if (seeking_) { |
344 if (new_seek_time == seek_time_) { | 352 if (new_seek_time == seek_time_) { |
345 if (media_source_delegate_) { | 353 if (media_source_delegate_) { |
346 if (!pending_seek_) { | 354 if (!pending_seek_) { |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
898 interpolator_.SetBounds(lower_bound, upper_bound); | 906 interpolator_.SetBounds(lower_bound, upper_bound); |
899 } | 907 } |
900 | 908 |
901 void WebMediaPlayerAndroid::OnConnectedToRemoteDevice( | 909 void WebMediaPlayerAndroid::OnConnectedToRemoteDevice( |
902 const std::string& remote_playback_message) { | 910 const std::string& remote_playback_message) { |
903 DCHECK(main_thread_checker_.CalledOnValidThread()); | 911 DCHECK(main_thread_checker_.CalledOnValidThread()); |
904 DCHECK(!media_source_delegate_); | 912 DCHECK(!media_source_delegate_); |
905 DrawRemotePlaybackText(remote_playback_message); | 913 DrawRemotePlaybackText(remote_playback_message); |
906 is_remote_ = true; | 914 is_remote_ = true; |
907 SetNeedsEstablishPeer(false); | 915 SetNeedsEstablishPeer(false); |
| 916 client_->connectedToRemoteDevice(); |
908 } | 917 } |
909 | 918 |
910 void WebMediaPlayerAndroid::OnDisconnectedFromRemoteDevice() { | 919 void WebMediaPlayerAndroid::OnDisconnectedFromRemoteDevice() { |
911 DCHECK(main_thread_checker_.CalledOnValidThread()); | 920 DCHECK(main_thread_checker_.CalledOnValidThread()); |
912 DCHECK(!media_source_delegate_); | 921 DCHECK(!media_source_delegate_); |
913 SetNeedsEstablishPeer(true); | 922 SetNeedsEstablishPeer(true); |
914 if (!paused()) | 923 if (!paused()) |
915 EstablishSurfaceTexturePeer(); | 924 EstablishSurfaceTexturePeer(); |
916 is_remote_ = false; | 925 is_remote_ = false; |
917 ReallocateVideoFrame(); | 926 ReallocateVideoFrame(); |
| 927 client_->disconnectedFromRemoteDevice(); |
918 } | 928 } |
919 | 929 |
920 void WebMediaPlayerAndroid::OnDidEnterFullscreen() { | 930 void WebMediaPlayerAndroid::OnDidEnterFullscreen() { |
921 if (!player_manager_->IsInFullscreen(frame_)) | 931 if (!player_manager_->IsInFullscreen(frame_)) |
922 player_manager_->DidEnterFullscreen(frame_); | 932 player_manager_->DidEnterFullscreen(frame_); |
923 } | 933 } |
924 | 934 |
925 void WebMediaPlayerAndroid::OnDidExitFullscreen() { | 935 void WebMediaPlayerAndroid::OnDidExitFullscreen() { |
926 // |needs_external_surface_| is always false on non-TV devices. | 936 // |needs_external_surface_| is always false on non-TV devices. |
927 if (!needs_external_surface_) | 937 if (!needs_external_surface_) |
(...skipping 19 matching lines...) Expand all Loading... |
947 | 957 |
948 void WebMediaPlayerAndroid::OnMediaPlayerPause() { | 958 void WebMediaPlayerAndroid::OnMediaPlayerPause() { |
949 UpdatePlayingState(false); | 959 UpdatePlayingState(false); |
950 client_->playbackStateChanged(); | 960 client_->playbackStateChanged(); |
951 } | 961 } |
952 | 962 |
953 void WebMediaPlayerAndroid::OnRequestFullscreen() { | 963 void WebMediaPlayerAndroid::OnRequestFullscreen() { |
954 client_->requestFullscreen(); | 964 client_->requestFullscreen(); |
955 } | 965 } |
956 | 966 |
| 967 void WebMediaPlayerAndroid::OnRemoteRouteAvailabilityChanged( |
| 968 bool routes_available) { |
| 969 client_->remoteRouteAvailabilityChanged(routes_available); |
| 970 } |
| 971 |
957 void WebMediaPlayerAndroid::OnDurationChanged(const base::TimeDelta& duration) { | 972 void WebMediaPlayerAndroid::OnDurationChanged(const base::TimeDelta& duration) { |
958 DCHECK(main_thread_checker_.CalledOnValidThread()); | 973 DCHECK(main_thread_checker_.CalledOnValidThread()); |
959 // Only MSE |player_type_| registers this callback. | 974 // Only MSE |player_type_| registers this callback. |
960 DCHECK_EQ(player_type_, MEDIA_PLAYER_TYPE_MEDIA_SOURCE); | 975 DCHECK_EQ(player_type_, MEDIA_PLAYER_TYPE_MEDIA_SOURCE); |
961 | 976 |
962 // Cache the new duration value and trust it over any subsequent duration | 977 // Cache the new duration value and trust it over any subsequent duration |
963 // values received in OnMediaMetadataChanged(). | 978 // values received in OnMediaMetadataChanged(). |
964 duration_ = duration; | 979 duration_ = duration; |
965 ignore_metadata_duration_change_ = true; | 980 ignore_metadata_duration_change_ = true; |
966 | 981 |
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1819 | 1834 |
1820 bool WebMediaPlayerAndroid::IsHLSStream() const { | 1835 bool WebMediaPlayerAndroid::IsHLSStream() const { |
1821 std::string mime; | 1836 std::string mime; |
1822 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; | 1837 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; |
1823 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) | 1838 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) |
1824 return false; | 1839 return false; |
1825 return !mime.compare("application/x-mpegurl"); | 1840 return !mime.compare("application/x-mpegurl"); |
1826 } | 1841 } |
1827 | 1842 |
1828 } // namespace content | 1843 } // namespace content |
OLD | NEW |