مشخصات مقاله
-
2328
-
0.0
-
12580
-
0
-
1
آموزش Media Player در اندروید
آموزش Media Player در اندروید
اندرويد راه هاي بسيار زيادي براي استفاده از فايل هاي صوتي و تصويري ايجاد كرده است. يكي از اين راه ها استفاده از مديا پلير است.
اندرويد مديا پلير را فراهم كرده تا به سرويس هاي اين گروه همچون خواندن فايل هاي صوتي و تصويري و غيره دسترسي داشته باشد.به منظور استفاده از مديا پلير ما بايد روش استتيك را به آن نسبت دهيم.در اين روش دوباره به مديا پلير باز مي گردد. كه جزييات در زير آمده است.
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.song);
دومين خصوصيت نام ترانه است كه شما قصد به اجرا در آوردن آن را داريد.شما بايد پوشه جديدي در پروژه خود بسازيد با نام راو و اطلاعات فايل موزيك را در آن قرار دهيد.
براي اولين بار كه شما شكل مديا پلير را ساخته ايد شما ميتوتنيد برخي روش ها را براي شروع كردن و تمام كردن موزيك ايجاد كنيد. اين روش ها در زير ليست شده اند.
mediaPlayer.start();
mediaPlayer.pause();
روش استارت آهنگ از ابتدا شروع به اجرا شدن مي كند. اگر آهنگ دوباره بعد از روشن كردن پاز دوباره شروع به اجرا كند از قسمتي كه مكث داشته است شروع مي كند و نه از ابتدا.
به منظور شروع موزيك از ابتدا شما بايد از روش ري استارت استفاده كنيد. كه جزييات در زير آمده است.
mediaPlayer.reset();
علاوه بر روش هاي استارت و استاپ ديگر روش هاي ارائه شده در اين گروه براي كارايي بالاتر فايل هاي صوتي و تصويري ارئه شده اند. اين روش ها در زير ليست شده است.
مثال:
در اينجا مثالي براي استفاده از مديا پلير ارائه شده است. يك مديا پلير پايه ميسازد كه شامل فوروارد و بكوارد و پلي و ياز مي شود.
به منظور آزمايش کردن اين مثال شما نياز به يك دستگاه واقعي براي شنيدن صدا داريد.
در قسمت زير مطلب به كلي توضيح داده شده است.
src/com.example.mediaplayer/MainActivity.java
package com.example.mediaplayer;
import java.util.concurrent.TimeUnit;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
public TextView songName,startTimeField,endTimeField;
private MediaPlayer mediaPlayer;
private double startTime = 0;
private double finalTime = 0;
private Handler myHandler = new Handler();;
private int forwardTime = 5000;
private int backwardTime = 5000;
private SeekBar seekbar;
private ImageButton playButton,pauseButton;
public static int oneTimeOnly = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
songName = (TextView)findViewById(R.id.textView4);
startTimeField =(TextView)findViewById(R.id.textView1);
endTimeField =(TextView)findViewById(R.id.textView2);
seekbar = (SeekBar)findViewById(R.id.seekBar1);
playButton = (ImageButton)findViewById(R.id.imageButton1);
pauseButton = (ImageButton)findViewById(R.id.imageButton2);
songName.setText("song.mp3");
mediaPlayer = MediaPlayer.create(this, R.raw.song);
seekbar.setClickable(false);
pauseButton.setEnabled(false);
}
public void play(View view){
Toast.makeText(getApplicationContext(), "Playing sound",
Toast.LENGTH_SHORT).show();
mediaPlayer.start();
finalTime = mediaPlayer.getDuration();
startTime = mediaPlayer.getCurrentPosition();
if(oneTimeOnly == 0){
seekbar.setMax((int) finalTime);
oneTimeOnly = 1;
}
endTimeField.setText(String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes((long) finalTime),
TimeUnit.MILLISECONDS.toSeconds((long) finalTime) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
toMinutes((long) finalTime)))
);
startTimeField.setText(String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes((long) startTime),
TimeUnit.MILLISECONDS.toSeconds((long) startTime) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
toMinutes((long) startTime)))
);
seekbar.setProgress((int)startTime);
myHandler.postDelayed(UpdateSongTime,100);
pauseButton.setEnabled(true);
playButton.setEnabled(false);
}
private Runnable UpdateSongTime = new Runnable() {
public void run() {
startTime = mediaPlayer.getCurrentPosition();
startTimeField.setText(String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes((long) startTime),
TimeUnit.MILLISECONDS.toSeconds((long) startTime) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
toMinutes((long) startTime)))
);
seekbar.setProgress((int)startTime);
myHandler.postDelayed(this, 100);
}
};
public void pause(View view){
Toast.makeText(getApplicationContext(), "Pausing sound",
Toast.LENGTH_SHORT).show();
mediaPlayer.pause();
pauseButton.setEnabled(false);
playButton.setEnabled(true);
}
public void forward(View view){
int temp = (int)startTime;
if((temp+forwardTime)<=finalTime){
startTime = startTime + forwardTime;
mediaPlayer.seekTo((int) startTime);
}
else{
Toast.makeText(getApplicationContext(),
"Cannot jump forward 5 seconds",
Toast.LENGTH_SHORT).show();
}
}
public void rewind(View view){
int temp = (int)startTime;
if((temp-backwardTime)>0){
startTime = startTime - backwardTime;
mediaPlayer.seekTo((int) startTime);
}
else{
Toast.makeText(getApplicationContext(),
"Cannot jump backward 5 seconds",
Toast.LENGTH_SHORT).show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
در قسمت زير مطلب به كلي توضيح داده شده است.
of the xml res/layout/activity_main.xml.
در قسمت زير مطلب به كلي توضيح داده شده است.
the res/values/string.xml. MediaPlayer Settings Now Playing: 0 min, 0 sec
در قسمت زير مطلب به كلي توضيح داده شده است.
of AndroidManifest.xml file.
اجازه بدهید برنامه ی مديا پليررا اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.
موبايلتون رو به عنوان يك آپشن انتخاب كنيد و در اين حالت شما دكمه مكث را غير فعال مي بينيد حالا روي پلي كليك كنيد و مي بينيد كه غير فعال مي شودو اين بار پاز فعال مي شود. كه در تصوير زير نشان داده شده است.
حالا موزيك در حال پخش است و هم اكنون كليد پاز را فشار دهيد و اين پيام پاز را مشاهده مي كنيد كه در زير نشان داده شده است.
حالا وقت آن اشت كه كليد پلي را فشار دهيد و ترانه دوباره از قسمت مكث شروع به خواندن مي كند. حالا كليد فور وارد يا بكوارد را فشار دهيد تا ترانه 5 ثانيه به جلو يا عقب برده شود. وقتي ترانه ديگه جلو نمي ره در اين لحظه همان طور كه در تصوير مي بينيد يك پيام به اين شكل مشاهده مي كنيد.
موزيك در حالت پخش باقي مي ماند و شما به امور ديگتون مي رسيد. به منظور خاموش كردن آن شما بايد به طور كلي از برنامه پشت زمينه خارج شويد.