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 package org.chromium.content.browser; | 5 package org.chromium.content.browser; |
6 | 6 |
7 import android.app.Activity; | 7 import android.app.Activity; |
8 import android.app.AlertDialog; | 8 import android.app.AlertDialog; |
9 import android.content.Context; | 9 import android.content.Context; |
10 import android.content.DialogInterface; | 10 import android.content.DialogInterface; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 private ContentVideoViewClient mClient; | 103 private ContentVideoViewClient mClient; |
104 | 104 |
105 private class VideoSurfaceView extends SurfaceView { | 105 private class VideoSurfaceView extends SurfaceView { |
106 | 106 |
107 public VideoSurfaceView(Context context) { | 107 public VideoSurfaceView(Context context) { |
108 super(context); | 108 super(context); |
109 } | 109 } |
110 | 110 |
111 @Override | 111 @Override |
112 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { | 112 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { |
113 if (mVideoWidth == 0 && mVideoHeight == 0) { | |
114 setMeasuredDimension(1, 1); | |
115 return; | |
116 } | |
117 int width = getDefaultSize(mVideoWidth, widthMeasureSpec); | 113 int width = getDefaultSize(mVideoWidth, widthMeasureSpec); |
118 int height = getDefaultSize(mVideoHeight, heightMeasureSpec); | 114 int height = getDefaultSize(mVideoHeight, heightMeasureSpec); |
119 if (mVideoWidth > 0 && mVideoHeight > 0) { | 115 if (mVideoWidth > 0 && mVideoHeight > 0) { |
120 if ( mVideoWidth * height > width * mVideoHeight ) { | 116 if ( mVideoWidth * height > width * mVideoHeight ) { |
121 height = width * mVideoHeight / mVideoWidth; | 117 height = width * mVideoHeight / mVideoWidth; |
122 } else if ( mVideoWidth * height < width * mVideoHeight ) { | 118 } else if ( mVideoWidth * height < width * mVideoHeight ) { |
123 width = height * mVideoWidth / mVideoHeight; | 119 width = height * mVideoWidth / mVideoHeight; |
124 } | 120 } |
125 } | 121 } |
126 setMeasuredDimension(width, height); | 122 setMeasuredDimension(width, height); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 mErrorButton = context.getString( | 224 mErrorButton = context.getString( |
229 org.chromium.content.R.string.media_player_error_button); | 225 org.chromium.content.R.string.media_player_error_button); |
230 mErrorTitle = context.getString( | 226 mErrorTitle = context.getString( |
231 org.chromium.content.R.string.media_player_error_title); | 227 org.chromium.content.R.string.media_player_error_title); |
232 mVideoLoadingText = context.getString( | 228 mVideoLoadingText = context.getString( |
233 org.chromium.content.R.string.media_player_loading_video); | 229 org.chromium.content.R.string.media_player_loading_video); |
234 } | 230 } |
235 | 231 |
236 private void showContentVideoView() { | 232 private void showContentVideoView() { |
237 FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( | 233 FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( |
238 ViewGroup.LayoutParams.WRAP_CONTENT, | 234 ViewGroup.LayoutParams.MATCH_PARENT, |
239 ViewGroup.LayoutParams.WRAP_CONTENT, | 235 ViewGroup.LayoutParams.MATCH_PARENT, |
240 Gravity.CENTER); | 236 Gravity.CENTER); |
241 this.addView(mVideoSurfaceView, layoutParams); | 237 this.addView(mVideoSurfaceView, layoutParams); |
242 View progressView = mClient.getVideoLoadingProgressView(); | 238 View progressView = mClient.getVideoLoadingProgressView(); |
243 if (progressView != null) { | 239 if (progressView != null) { |
244 mProgressView = progressView; | 240 mProgressView = progressView; |
245 } else { | 241 } else { |
246 mProgressView = new ProgressView(getContext(), mVideoLoadingText); | 242 mProgressView = new ProgressView(getContext(), mVideoLoadingText); |
247 } | 243 } |
248 this.addView(mProgressView, layoutParams); | 244 this.addView(mProgressView, new FrameLayout.LayoutParams( |
| 245 ViewGroup.LayoutParams.WRAP_CONTENT, |
| 246 ViewGroup.LayoutParams.WRAP_CONTENT, |
| 247 Gravity.CENTER)); |
249 mVideoSurfaceView.setZOrderOnTop(true); | 248 mVideoSurfaceView.setZOrderOnTop(true); |
250 mVideoSurfaceView.setOnKeyListener(this); | 249 mVideoSurfaceView.setOnKeyListener(this); |
251 mVideoSurfaceView.setOnTouchListener(this); | 250 mVideoSurfaceView.setOnTouchListener(this); |
252 mVideoSurfaceView.getHolder().addCallback(this); | 251 mVideoSurfaceView.getHolder().addCallback(this); |
253 mVideoSurfaceView.setFocusable(true); | 252 mVideoSurfaceView.setFocusable(true); |
254 mVideoSurfaceView.setFocusableInTouchMode(true); | 253 mVideoSurfaceView.setFocusableInTouchMode(true); |
255 mVideoSurfaceView.requestFocus(); | 254 mVideoSurfaceView.requestFocus(); |
256 } | 255 } |
257 | 256 |
258 @CalledByNative | 257 @CalledByNative |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 }) | 301 }) |
303 .setCancelable(false) | 302 .setCancelable(false) |
304 .show(); | 303 .show(); |
305 } | 304 } |
306 } | 305 } |
307 | 306 |
308 @CalledByNative | 307 @CalledByNative |
309 private void onVideoSizeChanged(int width, int height) { | 308 private void onVideoSizeChanged(int width, int height) { |
310 mVideoWidth = width; | 309 mVideoWidth = width; |
311 mVideoHeight = height; | 310 mVideoHeight = height; |
312 if (mVideoWidth != 0 && mVideoHeight != 0) { | 311 // This will trigger the SurfaceView.onMeasure() call. |
313 mVideoSurfaceView.getHolder().setFixedSize(mVideoWidth, mVideoHeight
); | 312 mVideoSurfaceView.getHolder().setFixedSize(mVideoWidth, mVideoHeight); |
314 } | |
315 } | 313 } |
316 | 314 |
317 @CalledByNative | 315 @CalledByNative |
318 private void onBufferingUpdate(int percent) { | 316 private void onBufferingUpdate(int percent) { |
319 mCurrentBufferPercentage = percent; | 317 mCurrentBufferPercentage = percent; |
320 } | 318 } |
321 | 319 |
322 @CalledByNative | 320 @CalledByNative |
323 private void onPlaybackComplete() { | 321 private void onPlaybackComplete() { |
324 onCompletion(); | 322 onCompletion(); |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 private native int nativeGetDurationInMilliSeconds(int nativeContentVideoVie
w); | 650 private native int nativeGetDurationInMilliSeconds(int nativeContentVideoVie
w); |
653 private native void nativeUpdateMediaMetadata(int nativeContentVideoView); | 651 private native void nativeUpdateMediaMetadata(int nativeContentVideoView); |
654 private native int nativeGetVideoWidth(int nativeContentVideoView); | 652 private native int nativeGetVideoWidth(int nativeContentVideoView); |
655 private native int nativeGetVideoHeight(int nativeContentVideoView); | 653 private native int nativeGetVideoHeight(int nativeContentVideoView); |
656 private native boolean nativeIsPlaying(int nativeContentVideoView); | 654 private native boolean nativeIsPlaying(int nativeContentVideoView); |
657 private native void nativePause(int nativeContentVideoView); | 655 private native void nativePause(int nativeContentVideoView); |
658 private native void nativePlay(int nativeContentVideoView); | 656 private native void nativePlay(int nativeContentVideoView); |
659 private native void nativeSeekTo(int nativeContentVideoView, int msec); | 657 private native void nativeSeekTo(int nativeContentVideoView, int msec); |
660 private native void nativeSetSurface(int nativeContentVideoView, Surface sur
face); | 658 private native void nativeSetSurface(int nativeContentVideoView, Surface sur
face); |
661 } | 659 } |
OLD | NEW |