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.
01<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
02    xmlns:tools="http://schemas.android.com/tools"
03    android:layout_width="match_parent"
04    android:layout_height="match_parent"
05    android:paddingBottom="@dimen/activity_vertical_margin"
06    android:paddingLeft="@dimen/activity_horizontal_margin"
07    android:paddingRight="@dimen/activity_horizontal_margin"
08    android:paddingTop="@dimen/activity_vertical_margin"
09    tools:context=".MainActivity" >
10 
11    <TextView
12        android:id="@+id/textViewRadioUrl"
13        android:layout_width="wrap_content"
14        android:layout_height="wrap_content"
15        android:layout_alignParentLeft="true"
16        android:layout_alignParentTop="true"
17        android:text="Radio Url" />
18 
19    <Button
20        android:id="@+id/buttonPlay"
21        android:layout_width="wrap_content"
22        android:layout_height="wrap_content"
23        android:layout_alignLeft="@+id/progressBar1"
24        android:layout_below="@+id/progressBar1"
25        android:layout_marginTop="14dp"
26        android:text="Play" />
27 
28    <ProgressBar
29        android:id="@+id/progressBar1"
30        style="?android:attr/progressBarStyleHorizontal"
31        android:layout_width="wrap_content"
32        android:layout_height="wrap_content"
33        android:layout_alignLeft="@+id/textViewRadioUrl"
34        android:layout_alignParentRight="true"
35        android:layout_below="@+id/textViewRadioUrl"
36        android:layout_marginTop="14dp"
37        android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
38        android:indeterminateOnly="false"
39        android:maxHeight="20dip"
40        android:minHeight="20dip"
41        android:progressDrawable="@android:drawable/progress_horizontal" />
42 
43    <Button
44        android:id="@+id/buttonStop"
45        android:layout_width="wrap_content"
46        android:layout_height="wrap_content"
47        android:layout_alignBaseline="@+id/buttonPlay"
48        android:layout_alignBottom="@+id/buttonPlay"
49        android:layout_toRightOf="@+id/buttonPlay"
50        android:text="Stop" />
51 
52</RelativeLayout>

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

001package net.agusharyanto.radiostreaming;
002 
003import java.io.IOException;
004 
005import android.app.Activity;
006import android.media.MediaPlayer;
007import android.media.MediaPlayer.OnBufferingUpdateListener;
008import android.media.MediaPlayer.OnPreparedListener;
009import android.os.Bundle;
010import android.util.Log;
011import android.view.View;
012import android.view.View.OnClickListener;
013import android.widget.Button;
014import android.widget.ProgressBar;
015import android.widget.TextView;
016 
017public class MainActivity extends Activity implements OnClickListener {
018 
019     
020    private String url_radio= "http://usa8-vn.mixstream.net:8138";
021    private ProgressBar playSeekBar;
022     
023    private TextView tvRadioUrl;
024    private Button buttonPlay;
025 
026    private Button buttonStopPlay;
027 
028    private MediaPlayer player;
029 
030    /** Called when the activity is first created. */
031    @Override
032    public void onCreate(Bundle savedInstanceState) {
033        super.onCreate(savedInstanceState);
034        setContentView(R.layout.activity_main);
035 
036        initializeUIElements();
037 
038        initializeMediaPlayer();
039    }
040 
041    private void initializeUIElements() {
042 
043        playSeekBar = (ProgressBar) findViewById(R.id.progressBar1);
044        playSeekBar.setMax(100);
045        playSeekBar.setVisibility(View.INVISIBLE);
046        playSeekBar.setIndeterminate(true);
047        buttonPlay = (Button) findViewById(R.id.buttonPlay);
048        buttonPlay.setOnClickListener(this);
049 
050        buttonStopPlay = (Button) findViewById(R.id.buttonStop);
051        buttonStopPlay.setEnabled(false);
052        buttonStopPlay.setOnClickListener(this);
053        tvRadioUrl = (TextView) findViewById(R.id.textViewRadioUrl);
054        tvRadioUrl.setText("Radio url : "+url_radio);
055    }
056 
057    public void onClick(View v) {
058        if (v == buttonPlay) {
059            startPlaying();
060        } else if (v == buttonStopPlay) {
061            stopPlaying();
062        }
063    }
064 
065    private void startPlaying() {
066        buttonStopPlay.setEnabled(true);
067        buttonPlay.setEnabled(false);
068 
069        playSeekBar.setVisibility(View.VISIBLE);
070 
071        player.prepareAsync();
072 
073        player.setOnPreparedListener(new OnPreparedListener() {
074 
075            public void onPrepared(MediaPlayer mp) {
076                 
077                player.start();
078                 
079            }
080        });
081 
082    }
083 
084    private void stopPlaying() {
085        if (player.isPlaying()) {
086            player.stop();
087            player.release();
088            initializeMediaPlayer();
089        }
090 
091        buttonPlay.setEnabled(true);
092        buttonStopPlay.setEnabled(false);
093        playSeekBar.setIndeterminate(true);
094        playSeekBar.setVisibility(View.INVISIBLE);
095         
096    }
097 
098    private void initializeMediaPlayer() {
099        player = new MediaPlayer();
100        try {
101            player.setDataSource(url_radio);
102        } catch (IllegalArgumentException e) {             
103            e.printStackTrace();
104        } catch (IllegalStateException e) {        
105            e.printStackTrace();
106        } catch (IOException e) {              
107            e.printStackTrace();
108        }
109 
110        player.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {
111 
112            public void onBufferingUpdate(MediaPlayer mp, int percent) {
113                 playSeekBar.setIndeterminate(false);
114                playSeekBar.setSecondaryProgress(100);
115                Log.i("Buffering", "" + percent);
116            }
117        });
118    }
119 
120    @Override
121    protected void onPause() {
122        super.onPause();
123        if (player.isPlaying()) {
124          //  player.stop();
125        }
126    }
127 
128}

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

01<?xml version="1.0" encoding="utf-8"?>
02<manifest xmlns:android="http://schemas.android.com/apk/res/android"
03    package="net.agusharyanto.radiostreaming"
04    android:versionCode="1"
05    android:versionName="1.0" >
06 
07    <uses-sdk
08        android:minSdkVersion="8"
09        android:targetSdkVersion="17" />
10     
11  <uses-permission android:name="android.permission.INTERNET"></uses-permission>
12     
13    <application
14        android:allowBackup="true"
15        android:icon="@drawable/ic_launcher"
16        android:label="@string/app_name"
17        android:theme="@style/AppTheme" >
18        <activity
19            android:name="net.agusharyanto.radiostreaming.RadioActivity"
20            android:label="@string/app_name" >
21            <intent-filter>
22                <action android:name="android.intent.action.MAIN" />
23 
24                <category android:name="android.intent.category.LAUNCHER" />
25            </intent-filter>
26        </activity>
27    </application>
28 
29</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>