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_impl_android.h" | 5 #include "webkit/media/android/webmediaplayer_impl_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 "media/base/android/media_player_bridge.h" | 9 #include "media/base/android/media_player_bridge.h" |
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" | 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" |
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebElement.h" | 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebElement.h" |
12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" | 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerClient.
h" | 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerClient.
h" |
14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
15 #include "webkit/media/android/stream_texture_factory_android.h" | 15 #include "webkit/media/android/stream_texture_factory_android.h" |
16 #include "webkit/media/android/webmediaplayer_manager_android.h" | 16 #include "webkit/media/android/webmediaplayer_manager_android.h" |
17 #include "webkit/media/android/webmediaplayer_proxy_android.h" | 17 #include "webkit/media/android/webmediaplayer_proxy_android.h" |
18 | 18 |
19 using WebKit::WebMediaPlayerClient; | 19 using WebKit::WebMediaPlayerClient; |
20 using WebKit::WebMediaPlayer; | 20 using WebKit::WebMediaPlayer; |
21 | 21 |
22 namespace webkit_media { | 22 namespace webkit_media { |
23 | 23 |
| 24 namespace { |
| 25 |
| 26 // Copied from content/browser/android/content_video_view.h |
| 27 enum { |
| 28 // These are used in java so don't change them unless we can share an enum |
| 29 // from java and remove this enum. |
| 30 PERSONALITY_FULL_SCREEN = 0, |
| 31 PERSONALITY_EMBEDDED = 1, |
| 32 }; |
| 33 |
| 34 } // namespace |
| 35 |
24 WebMediaPlayerImplAndroid::WebMediaPlayerImplAndroid( | 36 WebMediaPlayerImplAndroid::WebMediaPlayerImplAndroid( |
25 WebKit::WebFrame* frame, | 37 WebKit::WebFrame* frame, |
26 WebMediaPlayerClient* client, | 38 WebMediaPlayerClient* client, |
27 WebMediaPlayerManagerAndroid* manager, | 39 WebMediaPlayerManagerAndroid* manager, |
28 WebMediaPlayerProxyAndroid* proxy, | 40 WebMediaPlayerProxyAndroid* proxy, |
29 StreamTextureFactory* factory) | 41 StreamTextureFactory* factory) |
30 : WebMediaPlayerAndroid(client, manager, factory), | 42 : WebMediaPlayerAndroid(client, manager, factory), |
31 frame_(frame), | 43 frame_(frame), |
32 proxy_(proxy), | 44 proxy_(proxy), |
33 current_time_(0) { | 45 current_time_(0) { |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 | 99 |
88 void WebMediaPlayerImplAndroid::ReleaseResourcesInternal() { | 100 void WebMediaPlayerImplAndroid::ReleaseResourcesInternal() { |
89 if (proxy_) | 101 if (proxy_) |
90 proxy_->ReleaseResources(player_id()); | 102 proxy_->ReleaseResources(player_id()); |
91 } | 103 } |
92 | 104 |
93 void WebMediaPlayerImplAndroid::OnTimeUpdate(base::TimeDelta current_time) { | 105 void WebMediaPlayerImplAndroid::OnTimeUpdate(base::TimeDelta current_time) { |
94 current_time_ = static_cast<float>(current_time.InSecondsF()); | 106 current_time_ = static_cast<float>(current_time.InSecondsF()); |
95 } | 107 } |
96 | 108 |
97 void WebMediaPlayerImplAndroid::OnDidEnterFullscreen() { | 109 void WebMediaPlayerImplAndroid::OnDidEnterVideoView(int personality) { |
98 if (!manager()->IsInFullscreen(frame_)) { | 110 if (personality == PERSONALITY_FULL_SCREEN) { |
99 frame_->view()->willEnterFullScreen(); | 111 if (!manager()->IsInFullscreen(frame_)) { |
100 frame_->view()->didEnterFullScreen(); | 112 frame_->view()->willEnterFullScreen(); |
101 manager()->DidEnterFullscreen(frame_); | 113 frame_->view()->didEnterFullScreen(); |
| 114 manager()->DidEnterFullscreen(frame_); |
| 115 } |
| 116 } else { |
| 117 SetIsInVideoView(true); |
| 118 SetNeedsEstablishPeer(false); |
102 } | 119 } |
103 } | 120 } |
104 | 121 |
105 void WebMediaPlayerImplAndroid::OnDidExitFullscreen() { | 122 void WebMediaPlayerImplAndroid::OnDidExitVideoView(int personality) { |
106 SetNeedsEstablishPeer(true); | 123 SetNeedsEstablishPeer(true); |
107 // We had the fullscreen surface connected to Android MediaPlayer, | 124 // We had the fullscreen surface connected to Android MediaPlayer, |
108 // so reconnect our surface texture for embedded playback. | 125 // so reconnect our surface texture for embedded playback. |
109 if (!paused()) | 126 if (!paused()) |
110 EstablishSurfaceTexturePeer(); | 127 EstablishSurfaceTexturePeer(); |
111 | 128 |
112 frame_->view()->willExitFullScreen(); | 129 if (personality == PERSONALITY_FULL_SCREEN) { |
113 frame_->view()->didExitFullScreen(); | 130 frame_->view()->willExitFullScreen(); |
114 manager()->DidExitFullscreen(); | 131 frame_->view()->didExitFullScreen(); |
115 client()->repaint(); | 132 manager()->DidExitFullscreen(); |
| 133 client()->repaint(); |
| 134 } else { |
| 135 SetIsInVideoView(false); |
| 136 } |
116 } | 137 } |
117 | 138 |
118 void WebMediaPlayerImplAndroid::OnMediaPlayerPlay() { | 139 void WebMediaPlayerImplAndroid::OnMediaPlayerPlay() { |
119 UpdatePlayingState(true); | 140 UpdatePlayingState(true); |
120 client()->playbackStateChanged(); | 141 client()->playbackStateChanged(); |
121 } | 142 } |
122 | 143 |
123 void WebMediaPlayerImplAndroid::OnMediaPlayerPause() { | 144 void WebMediaPlayerImplAndroid::OnMediaPlayerPause() { |
124 UpdatePlayingState(false); | 145 UpdatePlayingState(false); |
125 client()->playbackStateChanged(); | 146 client()->playbackStateChanged(); |
126 } | 147 } |
127 | 148 |
128 void WebMediaPlayerImplAndroid::Destroy() { | 149 void WebMediaPlayerImplAndroid::Destroy() { |
129 proxy_ = NULL; | 150 proxy_ = NULL; |
130 } | 151 } |
131 | 152 |
132 void WebMediaPlayerImplAndroid::SetVideoSurface(jobject j_surface) {} | 153 void WebMediaPlayerImplAndroid::SetVideoSurface(jobject j_surface) {} |
133 | 154 |
134 } // namespace webkit_media | 155 } // namespace webkit_media |
OLD | NEW |