Sat. Nov 27th, 2021

kita sering mendengar musik menggunakan aplikasi android ataupun game yang memiliki sound audio. nah kali ini akan membahas cara membuat aplikasi play audio melalui url maupun tanpa url. yang pertama kali dibahas yaitu memasukkan audio ke dalam aplikasi. misalnya kita mempunyai lagu kemudian user ketika mengklik tombol play maka lagu tersebut akan diputar.
adapun caranya buat dahulu folder raw pada res 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 audio ke dalam folder raw.

buat layout button untuk memutar (Play), Pause, dan Stop musik yang akan diputar.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
   >


    <Button
        android:id="@+id/playbtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:text="PLAY MUSIC" />
    <Button
        android:id="@+id/pausebtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:text="PAUSE" />
    <Button
        android:id="@+id/stopbtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:text="STOP" />


</LinearLayout>

setelah itu pada MainActivity.kt masuukan kode sebagai berikut:

package a.riki.cobahello


import android.media.MediaPlayer
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.widget.Toast
import kotlinx.android.synthetic.main.layout_button.*

class MainActivity : AppCompatActivity() {
    private lateinit var mediaPlayer: MediaPlayer
    private lateinit var runnable:Runnable
    private var handler: Handler = Handler()
    private var pause:Boolean = false
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.layout_button)

        // Start the media player
        playbtn.setOnClickListener{
            if(pause){
                mediaPlayer.seekTo(mediaPlayer.currentPosition)
                mediaPlayer.start()
                pause = false
                Toast.makeText(this,"media playing",Toast.LENGTH_SHORT).show()
            }else{

                mediaPlayer = MediaPlayer.create(applicationContext,R.raw.sample)
                mediaPlayer.start()
                Toast.makeText(this,"media playing",Toast.LENGTH_SHORT).show()

            }
            playbtn.isEnabled = false
            pausebtn.isEnabled = true
            stopbtn.isEnabled = true

            mediaPlayer.setOnCompletionListener {
                playbtn.isEnabled = true
                pausebtn.isEnabled = false
                stopbtn.isEnabled = false
                Toast.makeText(this,"end",Toast.LENGTH_SHORT).show()
            }

        }

        // Pause the media player
        pausebtn.setOnClickListener {
            if(mediaPlayer.isPlaying){
                mediaPlayer.pause()
                pause = true
                playbtn.isEnabled = true
                pausebtn.isEnabled = false
                stopbtn.isEnabled = true
                Toast.makeText(this,"media pause",Toast.LENGTH_SHORT).show()
            }
        }

        // Stop the media player
        stopbtn.setOnClickListener{
            if(mediaPlayer.isPlaying || pause.equals(true)){
                pause = false
                mediaPlayer.stop()
                mediaPlayer.reset()
                mediaPlayer.release()
                handler.removeCallbacks(runnable)

                playbtn.isEnabled = true
                pausebtn.isEnabled = false
                stopbtn.isEnabled = false
                Toast.makeText(this,"media stop",Toast.LENGTH_SHORT).show()
            }
        }
    }
}

R.raw.sample, nama sample sesuaikan dengan nama file audionya. kemudian run program akan aplikasi sudah dapat diputar.

untuk mengakses audio dari url codenya sebagai berikut:

val url = "" // your URL here
 val mediaPlayer: MediaPlayer? = MediaPlayer().apply {
    setAudioStreamType(AudioManager.STREAM_MUSIC)
    setDataSource(url)
    prepare() // might take long! (for buffering, etc)
    start()
}