مدیا پلیر
در اندروید برای پلی کردن مدیا از کلاس MediaPlayer استفاده میشه. بدین صورت:
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(fileToPlay.getAbsolutePath());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
برای متوقف کردن مدیا از کد زیر استفاده میشه:
mediaPlayer.stop();
نکته ای که هست اینه که برای "هر" موزیک باید یک mediaPlayer جدید ساخته شه. اما من به جای این کار یک بار نیو کردم و برای اجرای جدید از
mediaPlayer.reset();
استفاده کردم. این دستور باعث میشه مدیا پلیر uninitialized بشه و از اول اون رو initialize کنیم (یعنی آدرس فایل جدید برای پلی رو بدیم)
نکته: مدیا پلیر یک لیسنر در هنگام completion داره:
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
stopAudio();
player_sheet_title.setText("Finished");
}
});
استیت idle: زمانی که شی مدیا پلیر فقط ساخته شده و هیچ چیزی براش ست نشده.
استیت prepare: زمانی که مدیا پلیر داره prepare میشه که یک فایلی رو پلی کنه (ولی هنوز چیزی پلی نشده).
استیت start: زمانی که یک فایل (مثلا یک موزیک) پلی میشه.
استیت pause: وقتی موزیک pause میشه. با resume میشه به استیت start برگشت.
استیت stop: از استیت های pause یا start میشه به استیت stop رفت. بعد از این استیت resume امکان پذیر نیست و باید به prepare بریم یعنی دوباره آدرس موزیک مورد نظر رو بهش بدیم.
وقتی یک مدیا پلیر جدید نیو میشه یا reset میکنیم، مدیا پلیر در استیت idle قرار میگیره و باید مجددا initialize بشه.