ساخت برنامه رادیوی انلاین+سورس

به نام خدا,هدیه اپ این اپس به کاربران وفادار و همیشگی,در 4 ماهی که از راه اندازی اپ این اپس گذشته شما کاربران گرامی همیشه در کنار ما بودید و با نظرات و پیشنهادتون ما رو در بهبود هر چه بهتر خدمات یاری کردید.بعد از 4 ماه تلاش بی وقفه برای پیشبرد اهداف اپ این اپس در ایجاد یک فضای اموزشی بسیار ساده و دوستانه  توانستیم به هشتاد هزار کاربر در طی این چند ماه برسیم که این نشان از رضایت کاربران از خدمات اموزشی اپ این اپس هست.به همین منظور بران شدیم تا یک اموزش بسیار کاربردی وزیبا رو به عنوان هدیه به شما کاربران و برنامه نویسیان حرفه ای تقدیم کنیم.این هدیه اموزش ساخت یک برنامه استریمینگ رادیویی یا برنامه پخش انلاین رادیو به همراه سورس کامل می باشد.

 

برای شروع کار یک پروژه جدید ایجاد می کنیم و اسمش رو AppinappsRadio قرار میدیم.بروی لایه برنامه از یک تصویر برای زیبا کردن محیط گرافیکی برنامه استفاده می کنیم(تمامی تصاویر و ایکون های استفاده شده در سورس برنامه قرار دارد.).در مرحله بعدی از سه تا imageView برای استفاده به عنوان دکمه گرافیکی . از یک  SeekBar برای نمایش زمان پخش برنامه رادیویی و از یک imageView برای نمایش یک ایکون زیبا استفاده کردیم.(کدهای کامل لایه برنامه یا activity_main.xml).

 <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:background="@drawable/menu_back"
tools:context=".MainActivity" >

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@drawable/shape" >

<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/seekBar1"
android:layout_alignTop="@+id/imageView1"
android:src="@drawable/stop_icon" />

<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/seekBar1"
android:layout_alignTop="@+id/imageView1"
android:src="@drawable/pause_icon" />

<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="58dp"
android:src="@drawable/play_icon" />

<SeekBar
android:id="@+id/seekBar1"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_above="@+id/imageView3"
android:layout_centerHorizontal="true"
android:layout_marginBottom="65dp"
/>

<ImageView
android:id="@+id/imageView4"
android:layout_width="135dp"
android:layout_height="135dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="49dp"
android:src="@drawable/pop_icon" />

<MediaController
android:id="@+id/mediaController1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView4"
android:layout_centerHorizontal="true"
android:layout_marginTop="63dp" >
</MediaController>
</RelativeLayout>

</RelativeLayout>

خیلی عالی.بعد از تکمیل کردن لایه برنامه.کلاس MainActivity.java  رو اجرا میکنیم و کدهای زیر رو بهش اضافه می کنیم.در ابتدا تمامی ابزار هامون رو که در لایه قرار دارند به صورت Global معرفی می کنیم.سپس با دستور initializeUIElements ابزار هامون رو مقدار دهی می کنیم. (کدهای کامل کلاس MainActivity).

 import java.io.IOException;

import android.annotation.SuppressLint;
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.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

//معرفی ابزار های مورد استفاده
private ProgressBar playSeekBar;
private ImageView buttonPlay;
private ImageView buttonStopPlay; 
private ImageView img;
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.seekBar1);
playSeekBar.setMax(100);
playSeekBar.setVisibility(View.INVISIBLE);

buttonPlay = (ImageView) findViewById(R.id.imageView1);
buttonPlay.setOnClickListener(this);

buttonStopPlay = (ImageView) findViewById(R.id.imageView3);
buttonStopPlay.setEnabled(false);
buttonStopPlay.setOnClickListener(this);

}

//ایجاد رویداد کلیک
@SuppressLint("ShowToast")
public void onClick(View v) {
if (v == buttonPlay) {
startPlaying();
Toast.makeText(MainActivity.this,"درحال بارگذاری", Toast.LENGTH_LONG).show();
} 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.setVisibility(View.INVISIBLE);
}

//گرفتن اطلاعات از ادرس اینترنتی رادیو
private void initializeMediaPlayer() {
player = new MediaPlayer();
try {
player.setDataSource("http://213.73.255.244:10700");
} 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.setSecondaryProgress(percent);
Log.i("Buffering", "" + percent);
}
});
}

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

}

خیلی خوب به همین راحتی.فقط یک نکته مهم رو نباید فراموش کرد اون هم اضافه کردن دسترسی اینترنت در فایل Manifest.xml هست.(کدهای کامل فایل Manifest).

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.appinapps.appinappsradio"
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="com.appinapps.appinappsradio.MainActivity"
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>


فایلهای ضمیمه
توجه! برای مشاهده فایلهای ضمیمه با ید وارد سایت شوید

نظرات شما نظر جدید
سایر مقالات این دسته