Tutorial ini membahas membuat aplikasi berupa video. ada 2 cara untuk mengembed video ke dalam aplikasi: 1. dengan memasukkan videonya ke dalam source code dan 2. memanggil/ call to url. jika mengembed video ke dalam source berarti bisa dijalankan secara offline tanpa harus terhubung dengan internet berbeda jika menggunakan call url maka aplikasi harus terkoneksi dengan internet.
tutorial ini membahas menjalankan video dengan cara mengembeded video ke dalam source code.
sediakan video dengan format .Mp4 atau sejenisnya kemudian buat folder RAW dengan cara
klik res > klik kanan pilih New > Klik Android Resourse Directory > kemudian pada Resource Type pilih raw > Klik OK. setelah itu copy kan file video ke dalam folder raw.
buatlah desain layout XML yaitu 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"> <VideoView android:id="@+id/putarVideo" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
kemudian buatlah code di MainActivity.kt yang menghubungkan dengan file video tersebut
putarVideo.setVideoURI(Uri.parse("android.resource://" + packageName + "/" + R.raw.film)) full source code:
package a.riki.cobahello import android.net.Uri import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.MediaController import kotlinx.android.synthetic.main.video.* class MainActivity : AppCompatActivity() { private var position = 0 private var mediaControls: MediaController? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.video) if (mediaControls == null) { mediaControls = MediaController(this@MainActivity) } try { putarVideo.setMediaController(mediaControls) putarVideo.setVideoURI(Uri.parse("android.resource://" + packageName + "/" + R.raw.film)) } catch (e: Exception) { Log.e("Error", e.message) } putarVideo.requestFocus() putarVideo.setOnPreparedListener { putarVideo.seekTo(position) if (position == 0) { putarVideo.start() } else { putarVideo.pause() } } } override fun onSaveInstanceState(outState: Bundle?) { super.onSaveInstanceState(outState) if (outState != null) { outState.putInt("Position", putarVideo.currentPosition) } putarVideo.pause() } override fun onRestoreInstanceState(savedInstanceState: Bundle?) { super.onRestoreInstanceState(savedInstanceState) if (savedInstanceState != null) { position = savedInstanceState.getInt("Position") } putarVideo.seekTo(position) } }