OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "webkit/media/android/webmediaplayer_in_process_android.h" | 5 #include "webkit/media/android/webmediaplayer_in_process_android.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "media/base/android/media_player_bridge.h" | 10 #include "media/base/android/media_player_bridge.h" |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 // is completed. | 102 // is completed. |
103 playback_completed_ = true; | 103 playback_completed_ = true; |
104 client()->timeChanged(); | 104 client()->timeChanged(); |
105 } | 105 } |
106 | 106 |
107 void WebMediaPlayerInProcessAndroid::SeekCompleteCallback( | 107 void WebMediaPlayerInProcessAndroid::SeekCompleteCallback( |
108 int player_id, base::TimeDelta current_time) { | 108 int player_id, base::TimeDelta current_time) { |
109 OnSeekComplete(current_time); | 109 OnSeekComplete(current_time); |
110 } | 110 } |
111 | 111 |
| 112 void WebMediaPlayerInProcessAndroid::MediaInterruptedCallback(int player_id) { |
| 113 PauseInternal(); |
| 114 } |
| 115 |
112 void WebMediaPlayerInProcessAndroid::MediaErrorCallback(int player_id, | 116 void WebMediaPlayerInProcessAndroid::MediaErrorCallback(int player_id, |
113 int error_type) { | 117 int error_type) { |
114 OnMediaError(error_type); | 118 OnMediaError(error_type); |
115 } | 119 } |
116 | 120 |
117 void WebMediaPlayerInProcessAndroid::VideoSizeChangedCallback( | 121 void WebMediaPlayerInProcessAndroid::VideoSizeChangedCallback( |
118 int player_id, int width, int height) { | 122 int player_id, int width, int height) { |
119 OnVideoSizeChanged(width, height); | 123 OnVideoSizeChanged(width, height); |
120 } | 124 } |
121 | 125 |
(...skipping 19 matching lines...) Expand all Loading... |
141 base::Unretained(this)), | 145 base::Unretained(this)), |
142 base::Bind(&WebMediaPlayerInProcessAndroid::BufferingUpdateCallback, | 146 base::Bind(&WebMediaPlayerInProcessAndroid::BufferingUpdateCallback, |
143 base::Unretained(this)), | 147 base::Unretained(this)), |
144 base::Bind(&WebMediaPlayerInProcessAndroid::MediaPreparedCallback, | 148 base::Bind(&WebMediaPlayerInProcessAndroid::MediaPreparedCallback, |
145 base::Unretained(this)), | 149 base::Unretained(this)), |
146 base::Bind(&WebMediaPlayerInProcessAndroid::PlaybackCompleteCallback, | 150 base::Bind(&WebMediaPlayerInProcessAndroid::PlaybackCompleteCallback, |
147 base::Unretained(this)), | 151 base::Unretained(this)), |
148 base::Bind(&WebMediaPlayerInProcessAndroid::SeekCompleteCallback, | 152 base::Bind(&WebMediaPlayerInProcessAndroid::SeekCompleteCallback, |
149 base::Unretained(this)), | 153 base::Unretained(this)), |
150 base::Bind(&WebMediaPlayerInProcessAndroid::TimeUpdateCallback, | 154 base::Bind(&WebMediaPlayerInProcessAndroid::TimeUpdateCallback, |
| 155 base::Unretained(this)), |
| 156 base::Bind(&WebMediaPlayerInProcessAndroid::MediaInterruptedCallback, |
151 base::Unretained(this)))); | 157 base::Unretained(this)))); |
152 | 158 |
153 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | 159 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); |
154 UpdateReadyState(WebMediaPlayer::ReadyStateHaveNothing); | 160 UpdateReadyState(WebMediaPlayer::ReadyStateHaveNothing); |
155 | 161 |
156 // Calling Prepare() will cause android mediaplayer to start | 162 // Calling Prepare() will cause android mediaplayer to start |
157 // buffering and decoding the data. On mobile devices, this costs a lot of | 163 // buffering and decoding the data. On mobile devices, this costs a lot of |
158 // data usage and could even introduce performance issues. So we don't | 164 // data usage and could even introduce performance issues. So we don't |
159 // initialize the player unless it is a local file. We will start loading | 165 // initialize the player unless it is a local file. We will start loading |
160 // the media only when play/seek/fullsceen button is clicked. | 166 // the media only when play/seek/fullsceen button is clicked. |
161 if (url.SchemeIs("file")) { | 167 if (url.SchemeIs("file")) { |
162 media_player_->Prepare(); | 168 media_player_->Prepare(); |
163 return; | 169 return; |
164 } | 170 } |
165 | 171 |
166 // Pretend everything has been loaded so that webkit can | 172 // Pretend everything has been loaded so that webkit can |
167 // still call play() and seek(). | 173 // still call play() and seek(). |
168 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); | 174 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); |
169 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); | 175 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); |
170 } | 176 } |
171 | 177 |
172 void WebMediaPlayerInProcessAndroid::OnTimeUpdate( | 178 void WebMediaPlayerInProcessAndroid::OnTimeUpdate( |
173 base::TimeDelta current_time) {} | 179 base::TimeDelta current_time) {} |
174 | 180 |
175 void WebMediaPlayerInProcessAndroid::Destroy() {} | 181 void WebMediaPlayerInProcessAndroid::Destroy() {} |
176 | 182 |
177 } // namespace webkit_media | 183 } // namespace webkit_media |
OLD | NEW |