materi ini adalah kelanjutan dari materi seblumnya tentang videoview. kalau materi sebelumnya membahas tentang videoview dengan embed video ke dalam source code raw. sekarang membahas bagaimana jika videonya di taruh ke server. dengan cara begini tidak membebani user jika ada banyak video kalau dimasukkan ke dalam source code raw tentu filenya terlalu besar sehingg alternatif lainya dengan mengakses video melalui URL.
tentunya untuk mengakses video melalui url membutuhkan koneksi internet sehingga pada manifest di masukkan code:
<uses-permission android:name="android.permission.INTERNET" /> buatlah layout videoview
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <VideoView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:id="@+id/videovw"/> <ProgressBar android:layout_width="200dp" android:layout_height="200dp" android:id="@+id/progrss" android:visibility="gone" android:layout_centerInParent="true"/> </RelativeLayout> </android.support.constraint.ConstraintLayout>
kemudian pada MainActivity buat code penghubung url videonya
package a.riki.cobahello import android.net.Uri import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.MediaController import android.widget.ProgressBar import android.widget.VideoView class MainActivity : AppCompatActivity() { private var videovw: VideoView? = null private var mediacontroller: MediaController? = null private var uri: Uri? = null private var isContinuously = false private var progressBar: ProgressBar? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.video) progressBar = findViewById(R.id.progrss) as ProgressBar videovw = findViewById(R.id.videovw) as VideoView mediacontroller = MediaController(this) mediacontroller!!.setAnchorView(videovw) val uriPath = "http://www.demonuts.com/Demonuts/smallvideo.mp4" //update package name uri = Uri.parse(uriPath) isContinuously = false progressBar!!.visibility = View.VISIBLE videovw!!.setMediaController(mediacontroller) videovw!!.setVideoURI(uri) videovw!!.requestFocus() videovw!!.start() videovw!!.setOnPreparedListener { progressBar!!.visibility = View.GONE } } }