آموزش اندروید استودیوآموزش های برنامه نویسی اندروید
آموزش برنامه نویسی اندروید با اندروید استودیو (بخش بیست و هفتم: پخش صوت در اپلیکیشن اندرویدی)

[vc_row][vc_column][vc_column_text]
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_btn title=”بخش بیست و ششم: آموزش برنامه نویسی نوتیفیکیشن در اندروید” color=”green” i_icon_fontawesome=”fa fa-android” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2Fnotifications-android-studio|title:%D8%A8%D8%AE%D8%B4%20%D8%A8%DB%8C%D8%B3%D8%AA%20%D9%88%20%D8%B4%D8%B4%D9%85%3A%20%D8%A2%D9%85%D9%88%D8%B2%D8%B4%20%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%20%D9%86%D9%88%DB%8C%D8%B3%DB%8C%20%D9%86%D9%88%D8%AA%DB%8C%D9%81%DB%8C%DA%A9%DB%8C%D8%B4%D9%86%20%D8%AF%D8%B1%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF||” add_icon=”true”][vc_btn title=”بخش بیست و هشتم: پیاده سازی RatingBar در اپلیکیشن اندرویدی” color=”green” i_icon_fontawesome=”fa fa-android” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2FRatingBar-android-studio|title:%D8%A8%D8%AE%D8%B4%20%D8%A8%DB%8C%D8%B3%D8%AA%20%D9%88%20%D9%87%D8%B4%D8%AA%D9%85%3A%20%D9%BE%DB%8C%D8%A7%D8%AF%D9%87%20%D8%B3%D8%A7%D8%B2%DB%8C%20RatingBar%20%D8%AF%D8%B1%20%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DB%8C||” add_icon=”true”][vc_btn title=”در صورت ارائه سوالات و مشکلات خود به انجمن اختصاصی اندروید مراجعه نمایید” style=”classic” color=”blue” link=”url:http%3A%2F%2Fforum.gsm-developers.com|title:%D8%AF%D8%B1%20%D8%B5%D9%88%D8%B1%D8%AA%20%D8%A7%D8%B1%D8%A7%D8%A6%D9%87%20%D8%B3%D9%88%D8%A7%D9%84%D8%A7%D8%AA%20%D9%88%20%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA%20%D8%AE%D9%88%D8%AF%20%D8%A8%D9%87%20%D8%A7%D9%86%D8%AC%D9%85%D9%86%20%D8%A7%D8%AE%D8%AA%D8%B5%D8%A7%D8%B5%DB%8C%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%20%D9%85%D8%B1%D8%A7%D8%AC%D8%B9%D9%87%20%D9%86%D9%85%D8%A7%DB%8C%DB%8C%D8%AF||”][/vc_column][/vc_row]
این بخش از آموزش می تواند برای عده ای از شما بسیار جالب باشد. بعضی از مواقع پیش می آید که احتیاج داریم که صوت در پس زمینه اپلیکیشن اندرویدی ما پخش شود. پس به کار با مدیا پلیر در اندروید نیاز داریم.
ولی برخلاف اسمی که دارد کار با صوت در برنامه نویسی اندروید، خیلی سخت نیست و نیاز به کدنویسی زیادی ندارد.
[/vc_column_text][vc_column_text]
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
یک پروژه جدید به نام Sound-Gsm ایجاد کردم.
حال به قسمت لایه برنامه رفته و از Palette ، یک ویجت از نوع TextView را به درون لایه می کشم.
اسم این تکست ویو (TextView) را “Pakhshe Music” می گذارم.
توجه داشته باشید که در برنامه ما، موزیک به صورت خودکار در پس زمینه اپلیکیشنی که نوشته ایم پخش می شود و ما در این بخش از آموزش، دخالتی برای پخش موسیقی نمی کنیم.
[/vc_column_text][vc_column_text]قبلا گفته شد که پوشه Res پوشه منابع ما است و عکس ها و فایل های ما برای استفاده در برنامه در این پوشه قرار می گیرد. پس باید یک پوشه جدید به نام Raw در پوشه Res ایجاد کنیم.
برای این کار طبق عکس، بر روی پوشه Res کلیک راست کرده و سپس از قسمت New، بر روی Android Resource Directory کلیک می کنیم.
[/vc_column_text][vc_column_text]
با باز شدن پنجره ی جدید طبق عکس، Raw را انتخاب کرده و سپس بر روی Ok کلیک می کنیم.
[/vc_column_text][vc_column_text]
می بینید که پوشه raw در دایرکتوری Res ایجاد شده است.
[/vc_column_text][vc_column_text]
حال فایل موسیقی خود را به این پوشه اضافه می کنیم.
من فایل موسیقی خودم را در پوشه raw و از طریق explorer خود ویندوز انجام دادم. پوشه raw را می توانید در این آدرس پیدا کنید:
AndroidStudioProjects\Sound-Gsm\app\src\main\res\raw
[/vc_column_text][vc_column_text]خب همان طور که می بینید اسم آهنگ من Air.mp3 است.
[/vc_column_text][vc_column_text]
به قسمت کدنویسی جاوا یعنی MainActivity.java رفته و کد زیر را در آن می نویسیم.
MediaPlayer mPlayer = MediaPlayer.create(MainActivity.this, R.raw.Air); mPlayer.start();
برای نوشتن کد MediaPlayer کلاس زیر را به پروژه خود اضافه نمایید. و یا بر روی MediaPlayer زده و Alt + Enter را بزنید سپس Import Class را بزنید.
import android.media.MediaPlayer;[/vc_column_text][vc_column_text]
اولین باری که من کد را به این صورت نوشتم با خطا مواجه شدم. برای همین خواستم در اینجا نیز با همین اشتباه پیش برم تا شما یاد بگیرد.
اگر کد بالا را اجرا کنید با خطا مواجه می شوید. ولی چرا؟
چون که من اولین بار فایل موسیقی خودم را با حروف بزرگ مثل Air که در بالا نوشته بودم، نوشتم. پس در برنامه نویسی اندروید فایل ها در منابع نباید با حروف بزرگ باشند.
در بخش منابع آموزش های اندروید نیز به این نکته اشاره شد.
[/vc_column_text][vc_column_text]پس هم نام فایل و نام آن در کدنویسی اندروید را به نام air.mp3 تغییر می دهیم.
[/vc_column_text][vc_text_separator title=”کد کامل” i_icon_fontawesome=”fa fa-android” i_color=”green” color=”juicy_pink” border_width=”2″ add_icon=”true”][vc_column_text]import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MediaPlayer mPlayer = MediaPlayer.create(MainActivity.this, R.raw.air);
mPlayer.start();
}
}
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
اگر برنامه را اجرا نمایید موسیقی با اجرای برنامه پخش می شود. ولی اگر برنامه را ببندید موسیقی همچنان در حال پخش خواهد بود. راه حل چیست؟
در بخش هشتم و بخش دهم از آموزش برنامه نویسی اندروید، در مورد چرخه حیات اکتیویتی ها توضیح داده شد. در اینجا چون ما کد پخش موسیقی را در اکتیویتی onCreate نوشته ایم پس موسیقی هیچ گاه تا Stop شدن برنامه قطع نمی شود.
برای حل این مشکل در اکتیویتی onPause و یا onStop باید موسیقی را قطع کنیم تا وقتی از برنامه خارج شدیم موسیقی قطع شود.
[/vc_column_text][vc_column_text]کد زیر را به برنامه اضافه می کنیم تا موسیقی ما به حالت Pause برود.
همچنین با نوشتن mPlayer.Stop نیز می توان موسیقی را Stop نمود نه Pause !
[/vc_column_text][vc_column_text]protected void onPause() {
super.onPause();
mPlayer.pause();
}
[/vc_column_text][vc_column_text]
از آنجایی که متغیر mPlayer به صورت سراسری یا Global معرفی نشده است در تابع onPause شناخته نشده است. برای همین باید به صورت سراسری معرفی شود که با نوشتن آن خارج از تابع onCreate این اتفاق می افتد. کد زیر کد پایانی برنامه ما است.
[/vc_column_text][vc_text_separator title=”کد کامل و پایانی برنامه ما” i_icon_fontawesome=”fa fa-android” i_color=”green” color=”juicy_pink” border_width=”2″ add_icon=”true”][vc_column_text]import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
// تعریف متغیر به صورت سراسری
public MediaPlayer mPlayer;
// اکتیویتی onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// تعریف متغیر برای موسیقی ما که این نام اضافه کرده بودیم
mPlayer = MediaPlayer.create(MainActivity.this, R.raw.air);
// استارت موسیقی
mPlayer.start();
}
// onPause اکتیویتی
protected void onPause() {
super.onPause();
//پایز کردن موسیقی
mPlayer.pause();
}
}
[/vc_column_text][vc_column_text]
می توانید با اضافه کردن اکتیویتی های onResume و یا onStop و .. با پخش موسیقی در این برنامه بازی کنید. همچنین می توانید کاری کنید که با کلیک بر روی دکمه، موسیقی پخش و یا قطع شود.
[/vc_column_text][vc_column_text]اگر برنامه را اجرا کنید می بینید که با آغاز شدن برنامه، موسیقی شروع به پخش کرده و سپس با خارج شدن از برنامه، موسیقی قطع می شود.
[/vc_column_text][vc_column_text]
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_btn title=”بخش بیست و ششم: آموزش برنامه نویسی نوتیفیکیشن در اندروید” color=”green” i_icon_fontawesome=”fa fa-android” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2Fnotifications-android-studio|title:%D8%A8%D8%AE%D8%B4%20%D8%A8%DB%8C%D8%B3%D8%AA%20%D9%88%20%D8%B4%D8%B4%D9%85%3A%20%D8%A2%D9%85%D9%88%D8%B2%D8%B4%20%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%20%D9%86%D9%88%DB%8C%D8%B3%DB%8C%20%D9%86%D9%88%D8%AA%DB%8C%D9%81%DB%8C%DA%A9%DB%8C%D8%B4%D9%86%20%D8%AF%D8%B1%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF||” add_icon=”true”][vc_btn title=”بخش بیست و هشتم: پیاده سازی RatingBar در اپلیکیشن اندرویدی” color=”green” i_icon_fontawesome=”fa fa-android” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2FRatingBar-android-studio|title:%D8%A8%D8%AE%D8%B4%20%D8%A8%DB%8C%D8%B3%D8%AA%20%D9%88%20%D9%87%D8%B4%D8%AA%D9%85%3A%20%D9%BE%DB%8C%D8%A7%D8%AF%D9%87%20%D8%B3%D8%A7%D8%B2%DB%8C%20RatingBar%20%D8%AF%D8%B1%20%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DB%8C||” add_icon=”true”][vc_btn title=”در صورت ارائه سوالات و مشکلات خود به انجمن اختصاصی اندروید مراجعه نمایید” style=”classic” color=”blue” link=”url:http%3A%2F%2Fforum.gsm-developers.com|title:%D8%AF%D8%B1%20%D8%B5%D9%88%D8%B1%D8%AA%20%D8%A7%D8%B1%D8%A7%D8%A6%D9%87%20%D8%B3%D9%88%D8%A7%D9%84%D8%A7%D8%AA%20%D9%88%20%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA%20%D8%AE%D9%88%D8%AF%20%D8%A8%D9%87%20%D8%A7%D9%86%D8%AC%D9%85%D9%86%20%D8%A7%D8%AE%D8%AA%D8%B5%D8%A7%D8%B5%DB%8C%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%20%D9%85%D8%B1%D8%A7%D8%AC%D8%B9%D9%87%20%D9%86%D9%85%D8%A7%DB%8C%DB%8C%D8%AF||”][/vc_column][/vc_row]
مفید وعالی بود واقعا ممنون از آموزشتون خدا خیرتون بده
باسلام
یه سوال داشتم
چطور میتونم در اندروید استودیو کاری کنم یه فایل صوتی بعد از دانلود در گوشی پخش بشه و تا حجم فایل نصبی زیاد نشه
سلام برنامه نویس سایت فعلا فعالیت نمی کنن شرمنده