to top
Android APIs
public class

VideoView

extends SurfaceView
implements MediaController.MediaPlayerControl
java.lang.Object
   ↳ android.view.View
     ↳ android.view.SurfaceView
       ↳ android.widget.VideoView

Class Overview

Displays a video file. The VideoView class can load images from various sources (such as resources or content providers), takes care of computing its measurement from the video so that it can be used in any layout manager, and provides various display options such as scaling and tinting.

Summary

[Expand]
Inherited XML Attributes
From class android.view.View
[Expand]
Inherited Constants
From class android.view.View
[Expand]
Inherited Fields
From class android.view.View
Public Constructors

? Examples
VideoView( Context context)

? Examples
VideoView( Context context, AttributeSet attrs)

? Examples
VideoView( Context context, AttributeSet attrs, int defStyle)
Public Methods

? Examples
boolean canPause()

? Examples
boolean canSeekBackward()

? Examples
boolean canSeekForward()

? Examples
int getBufferPercentage()

? Examples
int getCurrentPosition()

? Examples
int getDuration()

? Examples
boolean isPlaying()

? Examples
void onInitializeAccessibilityEvent( AccessibilityEvent event)
Initializes an AccessibilityEvent with information about this View which is the event source.

? Examples
void onInitializeAccessibilityNodeInfo( AccessibilityNodeInfo info)
Initializes an AccessibilityNodeInfo with information about this view.

? Examples
boolean onKeyDown(int keyCode, KeyEvent event)
Default implementation of KeyEvent.Callback.onKeyDown(): perform press of the view when KEYCODE_DPAD_CENTER or KEYCODE_ENTER is released, if the view is enabled and clickable.

? Examples
boolean onTouchEvent( MotionEvent ev)
Implement this method to handle touch screen motion events.

? Examples
boolean onTrackballEvent( MotionEvent ev)
Implement this method to handle trackball motion events.

? Examples
void pause()

? Examples
int resolveAdjustedSize(int desiredSize, int measureSpec)

? Examples
void resume()

? Examples
void seekTo(int msec)

? Examples
void setMediaController( MediaController controller)

? Examples
void setOnCompletionListener( MediaPlayer.OnCompletionListener l)
Register a callback to be invoked when the end of a media file has been reached during playback.

? Examples
void setOnErrorListener( MediaPlayer.OnErrorListener l)
Register a callback to be invoked when an error occurs during playback or setup.

? Examples
void setOnInfoListener( MediaPlayer.OnInfoListener l)
Register a callback to be invoked when an informational event occurs during playback or setup.

? Examples
void setOnPreparedListener( MediaPlayer.OnPreparedListener l)
Register a callback to be invoked when the media file is loaded and ready to go.

? Examples
void setVideoPath( String path)

? Examples
void setVideoURI( Uri uri)

? Examples
void start()

? Examples
void stopPlayback()

? Examples
void suspend()
Protected Methods
void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measure the view and its content to determine the measured width and the measured height.

[Expand]
Inherited Methods
From class android.view.SurfaceView
From class android.view.View
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource
From interface android.widget.MediaController.MediaPlayerControl

Public Constructors

public VideoView (Context context)

Added in API level 1

public VideoView (Context context, AttributeSet attrs)

Added in API level 1

public VideoView (Context context, AttributeSet attrs, int defStyle)

Added in API level 1

Public Methods

public boolean canPause ()

Added in API level 5

public boolean canSeekBackward ()

Added in API level 5

public boolean canSeekForward ()

Added in API level 5

public int getBufferPercentage ()

Added in API level 1

public int getCurrentPosition ()

Added in API level 1

public int getDuration ()

Added in API level 1

public boolean isPlaying ()

Added in API level 1

public void onInitializeAccessibilityEvent (AccessibilityEvent event)

Added in API level 14

Initializes an AccessibilityEvent with information about this View which is the event source. In other words, the source of an accessibility event is the view whose state change triggered firing the event.

Example: Setting the password property of an event in addition to properties set by the super implementation:

 public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
     super.onInitializeAccessibilityEvent(event);
     event.setPassword(true);
 }

If an View.AccessibilityDelegate has been specified via calling setAccessibilityDelegate(AccessibilityDelegate) its onInitializeAccessibilityEvent(View, AccessibilityEvent) is responsible for handling this call.

Note: Always call the super implementation before adding information to the event, in case the default implementation has basic information to add.

Parameters
event The event to initialize.

public void onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo info)

Added in API level 14

Initializes an AccessibilityNodeInfo with information about this view. The base implementation sets:

Subclasses should override this method, call the super implementation, and set additional attributes.

If an View.AccessibilityDelegate has been specified via calling setAccessibilityDelegate(AccessibilityDelegate) its onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfo) is responsible for handling this call.

Parameters
info The instance to initialize.

public boolean onKeyDown (int keyCode, KeyEvent event)

Added in API level 1

Default implementation of KeyEvent.Callback.onKeyDown(): perform press of the view when KEYCODE_DPAD_CENTER or KEYCODE_ENTER is released, if the view is enabled and clickable.

Key presses in software keyboards will generally NOT trigger this listener, although some may elect to do so in some situations. Do not rely on this to catch software key presses.

Parameters
keyCode A key code that represents the button pressed, from KeyEvent.
event The KeyEvent object that defines the button action.
Returns
  • If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

public boolean onTouchEvent (MotionEvent ev)

Added in API level 1

Implement this method to handle touch screen motion events.

Parameters
ev The motion event.
Returns
  • True if the event was handled, false otherwise.

public boolean onTrackballEvent (MotionEvent ev)

Added in API level 1

Implement this method to handle trackball motion events. The relative movement of the trackball since the last event can be retrieve with MotionEvent.getX() and MotionEvent.getY(). These are normalized so that a movement of 1 corresponds to the user pressing one DPAD key (so they will often be fractional values, representing the more fine-grained movement information available from a trackball).

Parameters
ev The motion event.
Returns
  • True if the event was handled, false otherwise.

public void pause ()

Added in API level 1

public int resolveAdjustedSize (int desiredSize, int measureSpec)

Added in API level 1

public void resume ()

Added in API level 8

public void seekTo (int msec)

Added in API level 1

public void setMediaController (MediaController controller)

Added in API level 1

public void setOnCompletionListener (MediaPlayer.OnCompletionListener l)

Added in API level 1

Register a callback to be invoked when the end of a media file has been reached during playback.

Parameters
l The callback that will be run

public void setOnErrorListener (MediaPlayer.OnErrorListener l)

Added in API level 1

Register a callback to be invoked when an error occurs during playback or setup. If no listener is specified, or if the listener returned false, VideoView will inform the user of any errors.

Parameters
l The callback that will be run

public void setOnInfoListener (MediaPlayer.OnInfoListener l)

Added in API level 17

Register a callback to be invoked when an informational event occurs during playback or setup.

Parameters
l The callback that will be run

public void setOnPreparedListener (MediaPlayer.OnPreparedListener l)

Added in API level 1

Register a callback to be invoked when the media file is loaded and ready to go.

Parameters
l The callback that will be run

public void setVideoPath (String path)

Added in API level 1

public void setVideoURI (Uri uri)

Added in API level 1

public void start ()

Added in API level 1

public void stopPlayback ()

Added in API level 1

public void suspend ()

Added in API level 8

Protected Methods

protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

Added in API level 1

Measure the view and its content to determine the measured width and the measured height. This method is invoked by measure(int, int) and should be overriden by subclasses to provide accurate and efficient measurement of their contents.

CONTRACT: When overriding this method, you must call setMeasuredDimension(int, int) to store the measured width and height of this view. Failure to do so will trigger an IllegalStateException, thrown by measure(int, int). Calling the superclass' onMeasure(int, int) is a valid use.

The base class implementation of measure defaults to the background size, unless a larger size is allowed by the MeasureSpec. Subclasses should override onMeasure(int, int) to provide better measurements of their content.

If this method is overridden, it is the subclass's responsibility to make sure the measured height and width are at least the view's minimum height and width (getSuggestedMinimumHeight() and getSuggestedMinimumWidth()).

Parameters
widthMeasureSpec horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
No examples for this method.
Frequently called with: [Clear]
Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License. The original page is available here.