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.
- Buat Project baru dengan nama “RadioStreaming”
- 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
assalamualaikum mas…..
mas agus mau tanya.,ni radio streaming a bisa bisa di buat di eclip v1 dan v2??
@Radi, Wa’alaikumsalam maksudnya eclipse v1 dan v2 ?
pak agus apa bisa ganti chanel radio lain?
kok saya coba gak keluar suara y?
pak saya lagi membuat aplikasih suatu pengajian dan di dalam nya ada radio streaming dan video streaming,
pada artikel bapak di atas, alhamdulillah berjalan lancar di aplikasi yg saya buat, dan saya masih membuhtukan tutorial membuat video streaming,
bapak agus bisa membantu saya?
Mas Agus, itu pas tak coba, sewaktu tak tekan tombol Home atau pas waktu layar terkunci. streaming menjadi berhenti. Untuk menambahkan proses service dimananya?
@Yohanes, Tidak perlu buat service untuk handling ini. pada saat tombol di home ditekan maka activity yang berjalan akan masuk ke onPause. Tinggal remark salah satu code di onPause selesai deh 🙂 Happy Coding dan coba pelajari Activity Life Cycle
Makasih Mas Agus atas bantuan dan pencerahannya…
Mas agus itu alat alat yang diperlukan apa saja ya ? makasih
maaf baru belajar nih
oh iyh bener tu mas, ketika di lock hpnya streamingny jadi mati,
Maksudnya di remark code onPause apa?
saya tidak ngerti mas.
muhammad deni, coba lihat code yang didalam method onPause. Nah itu yang diremark
Pak Mau nanya,.Waktu Saya Menjalankan Aplikasi nya kok Force Closed ya ??
mohon pencerahannya pak,. 😀
pak bisa minta link download aplikasi pembuat androidnya?? itu pake apa?
udah dicoba tapi gak nemu pak biar nambah siarannya , yang mana ya . . yang perlu di tambah :D, mohon bantuannya yaa
Hai, url radio streaming ini http://216.66.84.3:5902 tidak boleh running..kenapa?
Untuk stream type nye AAC+ tidak bisa running (cth : http://216.66.84.3:5902)
Untuk stream type MP3 tiada masalah (cth : http://192.186.148.94:8008).
Ada jalan penyelesaian?
Mintak bantuan, saya harap ada jalan penyelesaian.
Terima kasih tuan.
@Ari, kebetulan saya sudah buat slide untuk persiapannya bisa cek disini http://www.slideshare.net/agusslideshare/langkahlangkah-instalasi-software-untuk-develop-aplikasi-android
@Rudi, Coba dicek LogCatnya. itu dapat menuntun kita mengethui penyebab masalah
pak agus saya sudah coba menambahkan untuk stasiun radio yang lain tapi kok ga bisa ya, mohon bimbingannya.
@Zulhadi, kalau link radio yang saya kasih harusnya jalan. kalau yang lain belum coba.
Pak Agus,
saya sudah lakukan semua perintah dan syntaxnya tapi kenapa sewaktu diinstal dan dijalankan keluar “Unfurtonatelly RadioStraming Has Stopped”, ini apa masalahnya yah?, mohon pencerahanya.
terima kasih
Mas Agus, saya udah coba buat dan saya install di HP saya, LG L3 II Dual dan berhasil, tapi kok sewaktu saya coba di Samsung Galaxy Chat, Grand Duos, Note 3, Cyrus (lupa tipe) sama Acer E3 kok ga bisa jalan ya? Jadi cuma buffering terus (abu2 garis2 jalan) dan ga mau keular suara sama sekali. Padahal jaringan bagus.
padahal minimum Froyo maksimum Jelly Bean 4.3
Gitu itu kenapa ya Mas?
Makasih banyak sebelumnya Mas Agus…
Sama itu Mas Agus,kalau saat play, kemudian di stop, terus di play lagi maka jadi nutup paksa Mas. Itu dimananya ya?
Mas Agus,
Cara mengetahui Url Radionya gimana ya ?
apakah setiap radio yang sudah streaming di Internet bisa semua ?
saya perhatikan hanya bisa di SHOUTcast saja
Mohon pencerahannya mas
playSeekBar = (ProgressBar) findViewById(R.id.progressBar1); << ini error
playSeekBar.setMax(100);
playSeekBar.setVisibility(View.INVISIBLE);
playSeekBar.setIndeterminate(true);
buttonPlay = (Button) findViewById(R.id.buttonPlay); << ini error
buttonPlay.setOnClickListener(this);
buttonStopPlay = (Button) findViewById(R.id.buttonStop);<< ini error
buttonStopPlay.setEnabled(false);
buttonStopPlay.setOnClickListener(this);
tvRadioUrl = (TextView) findViewById(R.id.textViewRadioUrl); << ini error
tvRadioUrl.setText("Radio url : "+url_radio);
knapa ya di eclipse saya itu ada tanda error x ? tulisannya progressBar1 cannot be resolved or is not a filed ? itu progressBar1 sama dng yg buttonPlay, buttonStop dan textViewRadioUrl .. mohon pecerahanya. thx
Mas Budi, coba tambahkan ini di import
import nama_pacakage.main.R
mas saya ude coba di atas tapi gag mau work pas mau di running ada tulisaannya “unfortunately,Radiostreaming has stopped”
ini screenshootnya http://postimg.org/image/41rvz1m37/
terima kasih pak…
aplikasinya berhasil
om agus , aku dah coba dah jalan kerennnn nanti bakal aku coba kembangin lagi terima kasih om agus , cuma kok klo coba pake radio yang pake short domain misal http://www.987genfm.com/streaming
itu ga bisa om mohon pencerahan > 😀
Permisi, ada yg punya skripsi lengkap tentang radio android ini? pliss help me, aku butuh buat referensinya, sy kesulitan diperancangan sistemnya, mohon bantuannya, kalau ada yg punya mohon kirim ke email sy : gilang_mmf@yahoo.co.id . semoga banyak rejekinya,dipermudah dlm segala hal, banyak pahala dan sukses selalu. Amin
pak sy mau tanya bisa ga project android di eclipse open di netbeans ,,
om agus saya lagi belajar masih awam 😀
saya coba ko pas saya launch keluar ini, kenapa ya??
[2014-07-16 08:44:19 – Emulator] Failed to allocate memory: 1455
[2014-07-16 08:44:19 – Emulator]
[2014-07-16 08:44:19 – Emulator] This application has requested the Runtime to terminate it in an unusual way.
[2014-07-16 08:44:19 – Emulator] Please contact the application’s support team for more information.
mas tanya, agar aplikasinya bisa diputar di latar belakang gimana ya?
@alw, lihat comment2 sebelumnya. sudah ada jawabannya
mas agus main activty yang saya pake kanap eror terus
@ibnu, Pastikan file layout xmlnya sudah disave
buttonPlay cannot be resolved or is not a field line 46 Java Problem
textViewRadioUrl cannot be resolved or is not a field line 52 Java Problem
buttonStop cannot be resolved or is not a field line 49 Java Problem
progressBar1 cannot be resolved or is not a field line 42 Java Problem
mas agus itu masalahnya di atas bagaimana solusinya kenapa setiap kali pasang mesti eror
ketika ditekan tombol home sudah bisa berjalan di background tetapi ketika tombol back aplikasi mati, untuk tombol back pake activity life cycle yg mana? sy coba onStop nda bisa
mas agus.. saya terkendala di sini mas.. msih kurang faham.. ada tanda serunya..
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);
@jhack, kalau tanda seru warnanya hanya kuning itu namanya warning. dan program masih bisa dirun
Mas…toling di bantu..sy ingin memuncul kan current song dan jumlah pendengar nya..gmn cara nya mas..?
berguna banget nih buat belajar, makasih yaah mas, izin share juga yah 😀
mas agus…. bagaimana cara pasang admob untuk aplikasi ini??? mohon buat totor lagi cara memasukan admob. jgn lupa kabarin ane via email kalau sdh buat totorial nya. hehehe
Mantab banged mas, saya coba dulu ya mas. moga work saat di pasang di blogku. matur nuwun..
kalau nambahin form dibawahnya, gmn pak caranya?
Saya coba praktekkan dulu ya mas, makasih banya mas sebelumnya. akhirnya saya bisa menemukan artikel tentang aplikasi yang saya cari ini.
mas Agus cara buat aplikasi video Streaming gmana mas ?? mhon bantuannya..
mas agus pas di activity_main.xml kok
RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
tandanya merah dan tulisan nya url not registered.. itu gimana ya mas? terimakasih sebelumnya
jossss
Bangga juga yah seandainya bisa bikin aplikasi sendiri dan banyak digunakan orang lain seperti aplikasi radio misalnya, mas.
assalamualaikum. Pak Agus mau nanya nih. saya usulkan TA dengn judul radio streaming android. trus dosen saya suruh tambahin algoritma agar saat kondisi jaringan lemot kualitas suara yang di hasilkan oleh aplikasi tetap jernih. itu kira” algoritma apa.. yah pak?? mohon balasannya
mas aguss tuh aplikasi nya namnya apa ya ?