Belajar Android Membuat Aplikasi Radio Streaming

Belajar Android lagi yuk. Jumpa lagi dengan Agus Haryanto, pada kesempatan kali ini kita akan mempelajari tentang pembuatan aplikasi radio streaming pada android.

Dulu saya heran kok bisa yah orang dengarin radio padahal di handphonenya tidak fitur Radio FM. Yang lebih hebat lagi dia bisa dengarin Radio siaran Luar negeri yang kita sama-sama tahu radio luar negeri itu kan hanya bisa ditangkap oleh Radio SW. Wah pasti ada rahasia dibalik rahasia. Setelah googling akhirnya dapat jawaban yang didengarkan oleh orang-orang itu adalah Radio dari Internet istilah umumnya adalah Radio Streaming. Karena sudah pakai internet maka apabila jaringan internetnya bagus kualitas siaran yang kita dapatkan akan bagus, kita tidak akan ketemu lagi suara kemresek kalau gelombangnya kurang pas.

Akhirnya penasaran juga pengan buat aplikasi yang bisa bantu orang dengar Radio lewat Streaming Internet. Akhirnya seperti biasa kita manfaatkan Internet juga untuk mencari jawabannya. Ketemu deh jawabannya di sini.

Oh ia seperti pada Radio FM setiap radio punya gelombangnya masing-masing demikian juga dengan Radio Internet mereka punya address masing-masing.


Mari kita mulai.

  1. Buat Project baru dengan nama “RadioStreaming”
  2. Sekarang mari kita siapkan layout user interfacenya,  Edit activity_main.xml lalu ketikan kode berikut.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textViewRadioUrl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Radio Url" />

    <Button
        android:id="@+id/buttonPlay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/progressBar1"
        android:layout_below="@+id/progressBar1"
        android:layout_marginTop="14dp"
        android:text="Play" />

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textViewRadioUrl"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textViewRadioUrl"
        android:layout_marginTop="14dp"
        android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
        android:indeterminateOnly="false"
        android:maxHeight="20dip"
        android:minHeight="20dip"
        android:progressDrawable="@android:drawable/progress_horizontal" />

    <Button
        android:id="@+id/buttonStop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/buttonPlay"
        android:layout_alignBottom="@+id/buttonPlay"
        android:layout_toRightOf="@+id/buttonPlay"
        android:text="Stop" />

</RelativeLayout>

3. Sekarang kita melangkah ke otak dari aplikasi radio streaming ini, edit class MainActivity.java lalu ketikan kode berikut

package net.agusharyanto.radiostreaming;

import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

	
	private String url_radio= "http://usa8-vn.mixstream.net:8138";
    private ProgressBar playSeekBar;
    
    private TextView tvRadioUrl;
    private Button buttonPlay;

    private Button buttonStopPlay;

    private MediaPlayer player;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initializeUIElements();

        initializeMediaPlayer();
    }

    private void initializeUIElements() {

        playSeekBar = (ProgressBar) findViewById(R.id.progressBar1);
        playSeekBar.setMax(100);
        playSeekBar.setVisibility(View.INVISIBLE);
        playSeekBar.setIndeterminate(true);
        buttonPlay = (Button) findViewById(R.id.buttonPlay);
        buttonPlay.setOnClickListener(this);

        buttonStopPlay = (Button) findViewById(R.id.buttonStop);
        buttonStopPlay.setEnabled(false);
        buttonStopPlay.setOnClickListener(this);
        tvRadioUrl = (TextView) findViewById(R.id.textViewRadioUrl);
        tvRadioUrl.setText("Radio url : "+url_radio);
    }

    public void onClick(View v) {
        if (v == buttonPlay) {
            startPlaying();
        } else if (v == buttonStopPlay) {
            stopPlaying();
        }
    }

    private void startPlaying() {
        buttonStopPlay.setEnabled(true);
        buttonPlay.setEnabled(false);

        playSeekBar.setVisibility(View.VISIBLE);

        player.prepareAsync();

        player.setOnPreparedListener(new OnPreparedListener() {

            public void onPrepared(MediaPlayer mp) {
            	
                player.start();
            	
            }
        });

    }

    private void stopPlaying() {
        if (player.isPlaying()) {
            player.stop();
            player.release();
            initializeMediaPlayer();
        }

        buttonPlay.setEnabled(true);
        buttonStopPlay.setEnabled(false);
        playSeekBar.setIndeterminate(true);
        playSeekBar.setVisibility(View.INVISIBLE);
        
    }

    private void initializeMediaPlayer() {
        player = new MediaPlayer();
        try {
            player.setDataSource(url_radio);
        } catch (IllegalArgumentException e) {	        	
            e.printStackTrace();
        } catch (IllegalStateException e) {	        
        	e.printStackTrace();
        } catch (IOException e) {	        	
            e.printStackTrace();
        }

        player.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {

            public void onBufferingUpdate(MediaPlayer mp, int percent) {
            	 playSeekBar.setIndeterminate(false);
                playSeekBar.setSecondaryProgress(100);
                Log.i("Buffering", "" + percent);
            }
        });
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (player.isPlaying()) {
          //  player.stop();
        }
    }

}

4. Jangan lupa karena aplikasi kita menggunakan jaringan internet maka kita harus menambahkan permission internet pada AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.agusharyanto.radiostreaming"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    
  <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="net.agusharyanto.radiostreaming.RadioActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

5. Saatnya menjalankan project RadioStreaming yang telah kita buat.

Klik Button Play tunggu beberapa saat dan dari handphone anda akan terdengar suara siaran Radio.


Nah Gampangkan buatnya, ayoo semangat. Yang lagi skripsi tingkatkan semangat dan usahanya, semoga bisa cepat selesai jangan ditunda-tunda lagi.

Untuk yang sudah sukses dengan tutorial ini bisa mencoba tantangannya dengan membuat aplikasi Radio streaming yang bisa memainkan lebih dari 1 station radio 

Semoga Bermanfaat

Salam Hangat

Agus Haryanto

Referensi:
http://stackoverflow.com/questions/6283568/online-radio-streaming-app-for-android

54 comments to Belajar Android Membuat Aplikasi Radio Streaming

  • Farras Doko

    Mas, kok pas saya klik play ada tulisan RadioStreaming has stopped

    ket:
    03-05 10:35:37.914 7050-7050/com.gmail.farasabiyyu12.justradio E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.gmail.farasabiyyu12.justradio, PID: 7050
    java.lang.IllegalStateException
    at android.media.MediaPlayer.prepareAsync(Native Method)
    at com.gmail.farasabiyyu12.justradio.MainActivity.startPlaying(MainActivity.java:86)

    MainActivity.java:86 = player.prepareAsync();

  • ardi

    gan kalo kita mau buat aplikasi radio online… itu kita harus izin khusus ke pihak radio station nya…apa

  • Idris

    Kalau url.nya model seperti ini misalnya http://urlwebsite.com:8000/streamingradio
    apakah kodenya sama? Apakah menambah kode?

  • ezam

    maaf mas mau nanya, ini buatnya gak pake android studio ya ?

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>