অ্যান্ড্রোয়েড অ্যাপ ডেভেলপমেন্ট – মিডিয়া প্লে / MP3 প্লে

অ্যান্ড্রোয়েড যেকোন মিডিয়া প্লে করা ভয়াবর রকমের সোজা। একটি MP3 কিভাবে প্লে করানো যায়, তা আমি দেখাচ্ছি। মাত্র তিনটে স্টেপ আমাদের নিতে হবে। প্রথমে আমরা যে MP3 টা প্লে করতে চাই, তা আমাদের প্রজেক্টে রাখতে হবে। দ্বিতীয় হচ্ছে লেয়াউট ফাইলে একটা বাটন তৈরি করতে হবে, প্লে বাটন। আর শেষে জাভা ফাইলে একটা কমান্ড দিতে হবে, প্লে! এই! কোড গুলো লেখার নিচে যুক্ত করে দেওয়া হয়েছে। ডাউনলোড করে দেখে দেখে কাজ করা যাবে।  এন্ড্রয়েড নিয়ে ইলিমেন্টারি অনেক গুলো লেখা রয়েছে। এন্ড্রয়েড ক্যাটেগরিতে গিয়ে সেগুলো দেখা যাবে।

 

MP3 টা আমাদের প্রজেক্টে রাখার জন্য আমরা res ফোল্ডারের ভেতর raw নামে একটা ডিরেক্টরি তৈরি করে নিব। নিচের ছবিটি দেখতে পারিঃ

Add directory

 

raw ফোল্ডারে আমাদের MP3 ফাইলটা রাখব। আমি উদাহন হিসবে “আমি বাংলায় গান গাই” গানটা রেখেছি। এখান থেকে ডাউনলোড করা যাবে গানটি। প্রথম কাজ শেষ।

 

দ্বিতীয় কাজ হচ্ছে আমাদের একটা প্লে বাটন তৈরি করা। যে কোন বাটন ই কাজ করবে। ইমেজ বাটন বা টেক্সট বাটন।

 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Play"
 android:id="@+id/play"
 android:layout_alignParentTop="true"
 android:layout_alignParentLeft="true"
 android:layout_alignParentStart="true"
 android:layout_marginTop="83dp" />

 

 

 

এবার MainActivity.java ফাইলে বাটন ভ্যারিয়েবল তৈরি করে নিব। এবং বাটনে OnClickListener যুক্ত করব। যখন ক্লিক করবে, তখন মিডিয়াটি প্লে হবে। সম্পুর্ণ কোডঃ


import java.util.concurrent.TimeUnit;

import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

 Button play;
 MediaPlayer mp ;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 play=(Button)findViewById(R.id.play);
 mp = MediaPlayer.create(MainActivity.this, R.raw.gaan);

play.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) {
 mp.start();
 mp.setOnCompletionListener(new OnCompletionListener(){
 public void onCompletion(MediaPlayer  mp){
 mp.release();
 }
 });

}
 });

}
 }
}

এখানে mp = MediaPlayer.create(MainActivity.this, R.raw.gaan) দিয়ে আমরা মিডিয়া প্লেয়ারটি তৈরি করেছি। R.raw.gaanহচ্ছে আমরা কোন মিডিয়াটি প্লে করতে চাচ্ছি তা। আপনি raw ফোল্ডারে যে কোন mp3 রেখেই কাজ করতে পারেন। mysong.mp3 হলে লিখব  R.raw.mysong। এক্সটেনশন [.mp3] লিখতে হবে না।

 

এতটুকু করে অ্যাপটি রান করালে রান হবে। প্লে বাটনে ক্লিক করলে MP3 টা প্লে হবে।

 

সমস্যা হচ্ছে ব্যাকগ্রাউন্ডে গানটি বাজতে থাকবে। পজ বা স্টপ কিছুই করতে পারব না। এবার আমরা পজ এবং স্টপ বাটন তৈরি করব। তার জন্য লেয়াউট ফাইলে আরো দুইটা বাটন তৈরি করে নিব।

 

সম্পুর্ণ 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:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
 android:background="#ffff0000">

 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:textAppearance="?android:attr/textAppearanceLarge"
 android:text="Ami Banglay Gaan Gai"
 android:id="@+id/textView"
 android:layout_alignParentTop="true"
 android:layout_alignParentLeft="true"
 android:layout_alignParentStart="true"
 android:layout_alignParentRight="true"
 android:layout_alignParentEnd="true"
 android:textSize="32sp" />

 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Play"
 android:id="@+id/play"
 android:layout_alignParentTop="true"
 android:layout_alignParentLeft="true"
 android:layout_alignParentStart="true"
 android:layout_marginTop="83dp" />

 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Pause"
 android:id="@+id/pause"
 android:layout_alignTop="@+id/play"
 android:layout_toRightOf="@+id/play"
 android:layout_toEndOf="@+id/play" />

 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Stop"
 android:id="@+id/stop"
 android:layout_alignTop="@+id/pause"
 android:layout_toRightOf="@+id/pause"
 android:layout_toEndOf="@+id/pause" />

</RelativeLayout>

জাভা ফাইলে পজ এর জন্য pause() কল করলে পজ হবে।  এবং স্টপ করার জন্য stop() কল করলে মিডিয়াটি প্লে হওয়া বন্ধ হবে। সম্পুর্ণ ফাইলঃ


package me.jakir.mp3play;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {
 Button play,pause,stop;
 MediaPlayer mp ;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 play =(Button)findViewById(R.id.play);
 pause =(Button)findViewById(R.id.pause);
 stop =(Button)findViewById(R.id.stop);

 mp = MediaPlayer.create(MainActivity.this, R.raw.gaan);

 play.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) {
 mp.start();
 mp.setOnCompletionListener(new OnCompletionListener(){
 public void onCompletion(MediaPlayer mp){
 mp.release();
 }
 });

 }
 });

 pause.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) {
 mp.pause();
 }
 });

 stop.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) {
 if(mp.isPlaying())
 mp.stop();
 mp = MediaPlayer.create(MainActivity.this, R.raw.gaan);

 }
 });

 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 getMenuInflater().inflate(R.menu.menu_main, menu);
 return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 // Handle action bar item clicks here. The action bar will
 // automatically handle clicks on the Home/Up button, so long
 // as you specify a parent activity in AndroidManifest.xml.
 int id = item.getItemId();

 //noinspection SimplifiableIfStatement
 if (id == R.id.action_settings) {
 return true;
 }

 return super.onOptionsItemSelected(item);
 }
}

স্টপ বাটন তো তখনি কাজ করা উচিত, যখন মিডিয়াটি প্লে হচ্ছে। এ জন্য আমরা স্টপ করার আগে isPlaying() দিয়ে চেক করে নিয়েছি মিডিয়াটি প্লে হচ্ছে কিনা। যদি হয়, তখন আমরা stop() মেথড কল করে মিডিয়াটি স্টপ করেছি।

 

 

 


2 thoughts on “অ্যান্ড্রোয়েড অ্যাপ ডেভেলপমেন্ট – মিডিয়া প্লে / MP3 প্লে

  1. Bro Please Clear The Concept Of previose Button,next button,Fast Forward button And Backward Button I Dont Ubnderstand Those Function Please Tell Me How To declare And Use Those Function Without Any Error
    plz Help Ma Plz…
    I am Frustrated…help me Out Plz

Leave a Reply

Your email address will not be published. Required fields are marked *