{"id":1091,"date":"2016-04-20T04:55:48","date_gmt":"2016-04-20T04:55:48","guid":{"rendered":"http:\/\/abhiandroid.com\/ui\/?page_id=1091"},"modified":"2019-06-12T11:40:41","modified_gmt":"2019-06-12T11:40:41","slug":"videoview","status":"publish","type":"page","link":"https:\/\/abhiandroid.com\/ui\/videoview","title":{"rendered":"VideoView Tutorial With Example In Android Studio"},"content":{"rendered":"<p>In Android, VideoView is used to\u00a0display a video file. It\u00a0can load images from various sources (such as content providers or resources) taking care of computing its measurement from the video so that it can be used for any layout manager, providing display options such as scaling and tinting.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1381\" src=\"\/ui\/wp-content\/uploads\/2016\/03\/VideoView-In-Android.jpg\" alt=\"VideoView In Android\" width=\"256\" height=\"371\" srcset=\"https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/03\/VideoView-In-Android.jpg 256w, https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/03\/VideoView-In-Android-207x300.jpg 207w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Important\u00a0Note: <\/strong><\/span>VideoView does not retain its full state when going into the background. In particular it does not restore the current play position and play state. Applications should save and restore these in\u00a0onSaveInstanceState(Bundle)\u00a0and\u00a0onRestoreInstanceState(Bundle).<\/p>\n<p><strong>VideoView code\u00a0In XML Android:<\/strong><\/p>\n<pre>&lt;VideoView\r\nandroid:id=\"@+id\/simpleVideoView\"\r\nandroid:layout_width=\"fill_parent\"\r\nandroid:layout_height=\"fill_parent\" \/&gt;\r\n<\/pre>\n<hr \/>\n<h4><strong>Methods Used in VideoView:<\/strong><\/h4>\n<p>Let\u2019s we discuss some important methods of VideoView that may be called in order to manage the playback of video:<\/p>\n<p><span style=\"color: #008000;\"><strong>1.\u00a0setVideoUri(Uri uri):<\/strong><\/span>\u00a0This method is used to set the absolute path of the video file which is going to be played. This method\u00a0takes a Uri object as an argument.<\/p>\n<p><span style=\"color: #008000;\"><strong>Below we set the uri of video which is saved in Android Studio:<\/strong><\/span><\/p>\n<p><strong>Step 1:<\/strong> Create a new directory in res folder and name it raw<\/p>\n<p><strong>Step 2:<\/strong> Save a video name fishvideo in raw folder<\/p>\n<p><strong>Step 3:<\/strong> Now use the below code to set the path for the video using setVideoUri() method in VideoView.<\/p>\n<pre>\/\/ initiate a video view\r\nVideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView);\r\nsimpleVideoView.setVideoURI(Uri.parse(\"android.resource:\/\/\" + getPackageName() + \"\/\" + R.raw.fishvideo));<\/pre>\n<p><span style=\"color: #008000;\"><strong>Setting\u00a0Video From Online Web Source:<\/strong><\/span><\/p>\n<p><strong>Step 1:<\/strong> First add internet permision in Manifest.xml file. We will need to add this so as to access the video through Internet.\u00a0Open AndroidManifest.xml and add the below code<\/p>\n<pre>&lt;!--Add this before application tag in AndroidManifest.xml--&gt;\r\n&lt;uses-permission android:name=\"android.permission.INTERNET\" \/&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1073\" src=\"\/ui\/wp-content\/uploads\/2016\/02\/Intenet-Permission-AndroidManifest-Code-For-WebView.jpg\" alt=\"Internet Permission AndroidManifest Code For WebViewr\" width=\"516\" height=\"218\" srcset=\"https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/02\/Intenet-Permission-AndroidManifest-Code-For-WebView.jpg 516w, https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/02\/Intenet-Permission-AndroidManifest-Code-For-WebView-300x127.jpg 300w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/p>\n<p><strong>Step 2:<\/strong> Add the basic VideoVideo XML code in activity_main.xml or activity.xml<\/p>\n<p><strong>Step 3:<\/strong> Use the below code to access the Video from our website<\/p>\n<pre>package abhiandroid.com.videofromwebsource;\r\n\r\nimport android.app.ProgressDialog;\r\nimport android.net.Uri;\r\nimport android.support.v7.app.AppCompatActivity;\r\nimport android.os.Bundle;\r\nimport android.widget.VideoView;\r\n\r\npublic class MainActivity extends AppCompatActivity {\r\n\r\n        @Override\r\n        protected void onCreate(Bundle savedInstanceState) {\r\n            super.onCreate(savedInstanceState);\r\n            setContentView(R.layout.activity_main);\r\n            Uri uri = Uri.parse(\"\/ui\/wp-content\/uploads\/2016\/04\/videoviewtestingvideo.mp4\");\r\n            VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\n            simpleVideoView.setVideoURI(uri);\r\n            simpleVideoView.start();\r\n    }\r\n}<\/pre>\n<p><span style=\"color: #008000;\"><strong>2. setMediaController(MediaController controller):<\/strong><\/span> This method of VideoView is used to set the controller for the controls of video playback.<\/p>\n<p>Below we show how to set the media controller object for a video view.<\/p>\n<pre>\/\/ create an object of media controller\r\nMediaController mediaController = new MediaController(this);\r\n\/\/ initiate a video view\r\nVideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \r\n\/\/ set media controller object for a video view\r\nsimpleVideoView.setMediaController(mediaController);\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1382\" src=\"\/ui\/wp-content\/uploads\/2016\/03\/setMediaController-in-VideoView-Android.jpg\" alt=\"setMediaController in VideoView Android\" width=\"540\" height=\"316\" srcset=\"https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/03\/setMediaController-in-VideoView-Android.jpg 540w, https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/03\/setMediaController-in-VideoView-Android-300x176.jpg 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/p>\n<p><span style=\"color: #008000;\"><strong>3. start():<\/strong><\/span> This method of VideoView is used to start the playback of video file.<\/p>\n<p>Below we show how to start a video in video view.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nsimpleVideoView.start(); \/\/ start a video\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1383\" src=\"\/ui\/wp-content\/uploads\/2016\/03\/start-in-Video-View-Android.gif\" alt=\"start in Video View Android\" width=\"304\" height=\"361\" \/><\/p>\n<p><span style=\"color: #008000;\"><strong>4. pause():<\/strong><\/span> This method of video view is used to pause the current playback.<\/p>\n<p>Below we shows how to pause a video in video view.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nsimpleVideoView.pause(); \/\/ pause a video\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1384\" src=\"\/ui\/wp-content\/uploads\/2016\/03\/pause-in-Video-Video-Android.jpg\" alt=\"pause in Video Video Android\" width=\"256\" height=\"189\" \/><\/p>\n<p><span style=\"color: #008000;\"><strong>5. canPause():<\/strong><\/span> This method will tell whether VideoView is able to pause the video. This method returns a Boolean value means either true or false.\u00a0If a video can be paused then it returns true otherwise it returns false.<\/p>\n<p>Below we checks whether a video is able to pause or not.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nBoolean canPauseVideo = simpleVideoView.canPause(); \/\/ check whether a video is able to pause or not\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>6. canSeekForward():<\/strong><\/span> This method will tell whether video is able to seek forward. This method returns a Boolean value i.e.\u00a0true or false.\u00a0If a video can seek forward then it returns true otherwise it returns false.<\/p>\n<p>Below we checks whether a video is able to seek forward \u00a0or not.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nBoolean canSeekForward = simpleVideoView.canSeekForward(); \/\/ checks whether a video view is able to seek forward  or not\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>7. canSeekBackward():<\/strong><\/span> This method will tell whether video is able to seek backward. This method returns a Boolean value i.e.\u00a0true or false.\u00a0If a video can seek backward then it return true otherwise it return false.<\/p>\n<p>Below we checks whether a video is able to seek backward \u00a0or not.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nBoolean canSeekBackword = simpleVideoView.canSeekBackward(); \/\/ checks whether a video view is able to seek backword or not\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>8. getDuration():<\/strong><\/span> This method is used to get the total duration of VideoView. This methods return an integer value.<\/p>\n<p>Below we get the total duration of a\u00a0 video view.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nint duration =simpleVideoView.getDuration();\/\/ get the total duration of the video\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>9. getCurrentPosition()<\/strong>:<\/span> This method is used to get the current position of playback. This method returns an integer value.<\/p>\n<p>Below we get the current position of a playback.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nint currentPosition = simpleVideoView.getCurrentPosition(); \/\/ get the current position of the video play back\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>10. isPlaying():<\/strong><\/span> This method tells whether a video is currently playing or not. This method returns a Boolean value. It returns true if video is playing or false if it\u2019s not.<\/p>\n<p>Below we check whether a video view is currently playing or not<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nBoolean isPlaying = simpleVideoView.isPlaying(); \/\/ check whether a video view is currently playing or not<\/pre>\n<p><span style=\"color: #008000;\"><strong>11. stopPlayback():<\/strong><\/span>\u00a0This method of VideoView is used to stop the video playback.<\/p>\n<p>Below we show how to stop a video in video view.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\nsimpleVideoView.stopPlayback(); \/\/ stop a video \r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>12. setOnPreparedListener(MediaPlayer.OnPreparedListener):<\/strong><\/span>\u00a0This is a \u00a0listener which allows a callback method to be called when the video is ready to play.<\/p>\n<p>Below we show the use of setOnPreparedListener event of a video view.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\n\r\n\/\/ perform set on prepared listener event on video view\r\nsimpleVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {\r\n@Override\r\npublic void onPrepared(MediaPlayer mp) {\r\n\r\n\/\/ do something when video is ready to play\r\n\r\n}\r\n});\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>13. setOnErrorListener(MediaPlayer.OnErrorListener):<\/strong><\/span>\u00a0This\u00a0listener allows a callback method to be called when an error occurs during the video playback.<\/p>\n<p>Below we show the use of setOnErrorListener event of a video view.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\n\r\n\/\/ perform set on error listener event on video view\r\nsimpleVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {\r\n@Override\r\npublic boolean onError(MediaPlayer mp, int what, int extra) {\r\n\r\n\r\n\/\/ do something when an error is occur during the video playback\r\nreturn false;\r\n}\r\n});\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>14. setOnCompletionListener(MediaPlayer.OnCompletionListener):<\/strong><\/span>\u00a0This listener allow a callback method to be called when the end of the video is reached.<\/p>\n<p>Below we shows the use of setOnCompletionListener event of a video view.<\/p>\n<pre>VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); \/\/ initiate a video view\r\n\/\/ perform set on completion listener event on video view\r\nsimpleVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {\r\n@Override\r\npublic void onCompletion(MediaPlayer mp) {\r\n\/\/ do something when the end of the video is reached\r\n}\r\n});\r\n<\/pre>\n<hr \/>\n<h4><strong>MediaController In VideoView<\/strong><\/h4>\n<p>MediaController is a class which is used to provide the controls for the video playback. If a video is simply played using the VideoView class then the user will not be given any control over the playback of the video which will run until the end of the video is reached. This issue can be addressed by attaching an instance of the MediaController class to the VideoView instance. The Media Controller will then provide a set of controls allowing the user to manage the playback (such as seeking backwards\/forwards and pausing in the video timeline).<\/p>\n<p><span style=\"color: #008000;\"><strong>Methods Of MediaController:<\/strong><\/span><\/p>\n<p>Let\u2019s we discuss some important methods of MediaController class that may be called in order to control for the playback.<\/p>\n<p><span style=\"color: #008000;\"><strong>1. setAnchorView(View view):<\/strong><\/span>\u00a0setAnchorView is used to designates the view to which the controller is to be anchored. This controls the location of the controls on the screen.<\/p>\n<p>Below we show how to use setanchorview() method of a MediaController class.<\/p>\n<pre>MediaController mediaController = new MediaController(this); \/\/ create an object of media controller\r\nmediaController.setAnchorView(simpleVideoView); \/\/ set anchor view for video view\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>2. show():<\/strong><\/span>\u00a0This method is used to show the controller on the screen.<\/p>\n<p>Below we show the controller on the screen.<\/p>\n<pre>MediaController mediaController = new MediaController(this); \/\/ create an object of media controller\r\nmediaController.show(); \/\/ show the controller on the screen\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>3. show(int timeout):<\/strong><\/span>\u00a0This method is used to set the time to show the controller on the screen.<\/p>\n<p>Below we set the time for showing the controller on the screen.<\/p>\n<pre>MediaController mediaController = new MediaController(this); \/\/ create an object of media controller\r\nmediaController.show(500); \/\/ set the time to show the controller on the screen\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>4. hide():<\/strong><\/span>\u00a0This method is used to hide the controls from the screen.<\/p>\n<p>Below we hide the control from the screen<\/p>\n<pre>MediaController mediaController = new MediaController(this); \/\/ create an object of media controller\r\nmediaController.hide(); \/\/ hide the control from the screen\r\n<\/pre>\n<p><span style=\"color: #008000;\"><strong>5. isShowing():<\/strong><\/span>\u00a0This method returns a Boolean value indicating whether the controls are currently visible to the user or not.<\/p>\n<p>Below we checks whether the controls are currently visible or not.<\/p>\n<pre>MediaController mediaController = new MediaController(this); \/\/ create an object of media controller\r\nBoolean isShowing = mediaController.isShowing(); \/\/ checks whether the controls are currently visible or not\r\n<\/pre>\n<hr \/>\n<h4><strong>VideoView Example In Android Studio:<\/strong><\/h4>\n<p>Below is the example of VideoView in Android in which we play a video in a video view by using Media Controller and perform set on error and completion listener events and display\u00a0Toast when the video is completed or an error occur while playing thee video.<\/p>\n<p>In this example we create a folder named raw in our project and store the video file in that folder and then set the uri for the video in our activity in which we display the video view.<\/p>\n<p>Below is the final output, download code and step by step explanation:<\/p>\n<p style=\"text-align: center;\"><a class=\"download\" href=\"https:\/\/github.com\/abhisheksaini4\/VideoViewAndroidExample\" target=\"_blank\" rel=\"nofollow\">Download Code<\/a><a class=\"help\" title=\"Learn How To Download Code And Import In Android Studio\" href=\"\/androidstudio\/download-code-abhiandroid\" target=\"_blank\" rel=\"nofollow\"> ? <\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1501\" src=\"\/ui\/wp-content\/uploads\/2016\/04\/VideoView-Example-In-Android-Studio.jpg\" alt=\"VideoView Example In Android Studio\" width=\"236\" height=\"383\" srcset=\"https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/04\/VideoView-Example-In-Android-Studio.jpg 236w, https:\/\/abhiandroid.com\/ui\/wp-content\/uploads\/2016\/04\/VideoView-Example-In-Android-Studio-185x300.jpg 185w\" sizes=\"auto, (max-width: 236px) 100vw, 236px\" \/><\/p>\n<p><strong>Step 1:<\/strong> Create a new project in Android Studio and name it <strong>VideoViewExample<\/strong><\/p>\n<p><strong>Step 2:<\/strong> Open res -&gt; layout -&gt;\u00a0xml (or) main.xml\u00a0and add following code :<\/p>\n<p>In this step we open an xml file and add the code to\u00a0display a VideoView in our activity.<\/p>\n<pre>&lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    android:paddingBottom=\"@dimen\/activity_vertical_margin\"\r\n    android:paddingLeft=\"@dimen\/activity_horizontal_margin\"\r\n    android:paddingRight=\"@dimen\/activity_horizontal_margin\"\r\n    android:paddingTop=\"@dimen\/activity_vertical_margin\"\r\n    tools:context=\".MainActivity\"&gt;\r\n\r\n    &lt;VideoView\r\n        android:id=\"@+id\/simpleVideoView\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"match_parent\" \/&gt;\r\n\r\n\r\n&lt;\/RelativeLayout&gt;<\/pre>\n<p><strong>Step 3:<\/strong> Open src -&gt; package -&gt;\u00a0MainActivity.java<\/p>\n<p>In this step we open\u00a0MainActivity\u00a0and\u00a0add the code to\u00a0initiate the video view and create an object of MediaController to control the video playback.<\/p>\n<p>In this class\u00a0we also set the uri for the video and perform\u00a0set on error and completion listener events and display Toast\u00a0message when video is\u00a0completed or an error is occur while playing thee video.<\/p>\n<p>Also make sure to create a new directory in res folder and name it raw.\u00a0Save a video name fishvideo in raw folder. We will be setting path to this Video in\u00a0setVideoURI() method.<\/p>\n<pre>package example.abhiandroid.videoviewexample;\r\n\r\nimport android.app.Activity;\r\nimport android.app.ProgressDialog;\r\nimport android.content.res.Configuration;\r\nimport android.media.MediaPlayer;\r\nimport android.media.MediaPlayer.OnPreparedListener;\r\nimport android.net.Uri;\r\nimport android.os.Bundle;\r\nimport android.util.Log;\r\nimport android.view.Menu;\r\nimport android.view.MenuItem;\r\nimport android.view.View;\r\nimport android.widget.MediaController;\r\nimport android.widget.Toast;\r\nimport android.widget.VideoView;\r\n\r\npublic class MainActivity extends Activity {\r\n\r\n    VideoView simpleVideoView;\r\n    MediaController mediaControls;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n        \/\/ Find your VideoView in your video_main.xml layout\r\n        simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView);\r\n\r\n        if (mediaControls == null) {\r\n            \/\/ create an object of media controller class\r\n            mediaControls = new MediaController(MainActivity.this);\r\n            mediaControls.setAnchorView(simpleVideoView);\r\n        }\r\n        \/\/ set the media controller for video view\r\n        simpleVideoView.setMediaController(mediaControls);\r\n        \/\/ set the uri for the video view\r\n        simpleVideoView.setVideoURI(Uri.parse(\"android.resource:\/\/\" + getPackageName() + \"\/\" + R.raw.fishvideo));\r\n        \/\/ start a video\r\n        simpleVideoView.start();\r\n\r\n        \/\/ implement on completion listener on video view\r\n        simpleVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {\r\n            @Override\r\n            public void onCompletion(MediaPlayer mp) {\r\n                Toast.makeText(getApplicationContext(), \"Thank You...!!!\", Toast.LENGTH_LONG).show(); \/\/ display a toast when an video is completed\r\n            }\r\n        });\r\n        simpleVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {\r\n            @Override\r\n            public boolean onError(MediaPlayer mp, int what, int extra) {\r\n                Toast.makeText(getApplicationContext(), \"Oops An Error Occur While Playing Video...!!!\", Toast.LENGTH_LONG).show(); \/\/ display a toast when an error is occured while playing an video\r\n                return false;\r\n            }\r\n        });\r\n    }\r\n\r\n}<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p>Now run the App and you will see Video playing as the App open. Click on the Video and Media Controller will appear on the screen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Android, VideoView is used to\u00a0display a video file. It\u00a0can load images from various sources (such as content providers or resources) taking care of computing its measurement from the video so that it can be used for any layout manager, providing display options such as scaling and tinting. Important\u00a0Note: VideoView does not retain its full &hellip; <a href=\"https:\/\/abhiandroid.com\/ui\/videoview\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">VideoView Tutorial With Example In Android Studio<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"home.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1091","page","type-page","status-publish","hentry"],"acf":[],"psp_head":"<title>VideoView Tutorial With Example In Android Studio \u2013 Abhi Android<\/title>\r\n<meta name=\"description\" content=\"In Android, VideoView is used to display a video file. Learn android methods, Media Controller and more used in VideoView with example in Android Studio.\" \/>\r\n<meta name=\"robots\" content=\"index,follow\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/abhiandroid.com\/ui\/videoview\" \/>\r\n","_links":{"self":[{"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/pages\/1091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/comments?post=1091"}],"version-history":[{"count":3,"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/pages\/1091\/revisions"}],"predecessor-version":[{"id":2806,"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/pages\/1091\/revisions\/2806"}],"wp:attachment":[{"href":"https:\/\/abhiandroid.com\/ui\/wp-json\/wp\/v2\/media?parent=1091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}