PDA

View Full Version : گذاشتن آهنگ روی برنامه در اندروید استودیو



kamal70
چهارشنبه 03 خرداد 1396, 19:34 عصر
سلام من یک بازی ساده ساختم می خوام روش آهنگ بگذارم طبق این سایت انجام دادم ولی وقتی اکتیویتی عوض میشه و بازی شروع میشه آهنگ قطع میشه؟ باید چیکار کنم که با عوض شدن اکتیویتی آهنگ قطع نشه؟

این سایت: http://abhiandroid.com/androidstudio/add-audio-android-studio.html

بهزاد اندیشمند
پنج شنبه 04 خرداد 1396, 00:13 صبح
سلام من یک بازی ساده ساختم می خوام روش آهنگ بگذارم طبق این سایت انجام دادم ولی وقتی اکتیویتی عوض میشه و بازی شروع میشه آهنگ قطع میشه؟ باید چیکار کنم که با عوض شدن اکتیویتی آهنگ قطع نشه؟

این سایت: http://abhiandroid.com/androidstudio/add-audio-android-studio.html

با استفاده از سرویس میتونید Mediaplayer توی تمام اکتیویتی ها اجرا کنید.

این سوال رو ببینید :https://stackoverflow.com/questions/8209858/android-background-music-service/8209975#8209975

kamal70
جمعه 05 خرداد 1396, 14:51 عصر
سلام من سایتی که گفتین خوندم ولی نفهمیدم چطور استفاده کنم لطفا بیشتر توضیح بدین؟

بهزاد اندیشمند
جمعه 05 خرداد 1396, 16:53 عصر
سلام من سایتی که گفتین خوندم ولی نفهمیدم چطور استفاده کنم لطفا بیشتر توضیح بدین؟

اول یه کلاس میسازین به اسم BackgroundSoundService که محتویات اون شامل کدهای زیر هست

public class BackgroundSoundService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {

return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.idil);
//اینجا بجای R.raw.idil .ادرس فایل موسیقیتون رو میدین.
player.setLooping(true); // Set looping
//اینجا با ست کردن لوپ بهش میگین که پس از اتمام پخش دوباره پخش از سر بگیره.
player.setVolume(100,100);

}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return 1;
}

public void onStart(Intent intent, int startId) {
// TO DO
}
public IBinder onUnBind(Intent arg0) {
// TO DO Auto-generated method
return null;
}

public void onStop() {

}
public void onPause() {

}
@Override
public void onDestroy() {
player.stop();
player.release();
}

@Override
public void onLowMemory() {

}
}

حالا موقعی که میخاین فایل موسیقیتون پخش بشه این کد رو در اکتیویتی موردنظر قرار بدید .:

Intent svc=new Intent(this, BackgroundSoundService.class);
startService(svc);

حالا توی فایل Manifest باید سرویستون رو تعریف کنید بصورت زیر:

<service android:enabled="true" android:name=".BackgroundSoundService " />


شیوه متوقف کردنش هم به همون صورت اجرا کردنش هست با این تفاوت که بجای Startservice باید بنویسید :Stopservice

kamal70
جمعه 05 خرداد 1396, 18:21 عصر
اجرا شد یه مشکل کوچکی داره اینکه وقتی برنامه بسته میشه موسیقی قطع نمیشه این stopservice راکجابذارم که وقتی برنامه بسته شد قطع بشه؟

kamal70
جمعه 05 خرداد 1396, 18:25 عصر
چون خود برنامه دکمه خروج نداره باید چیکار کنم وقتی روی دکمه بازگشت گوشی کلیک شد دکمه خروج بیاد؟

بهزاد اندیشمند
شنبه 06 خرداد 1396, 00:26 صبح
اجرا شد یه مشکل کوچکی داره اینکه وقتی برنامه بسته میشه موسیقی قطع نمیشه این stopservice راکجابذارم که وقتی برنامه بسته شد قطع بشه؟
میتونید توی متد onPause و همچنین متد onDestroy این stopservice قرار بدید . با اینکار هر موقع برنامه خارج شد . موزیک قطع میشه.

kamal70
شنبه 06 خرداد 1396, 14:33 عصر
وقتی می نویسم stopservice ورودی از نوع intent می خواهد intent در اکتیویتی تعریف کرده بودم چطور به اون intent در این کلاس دسترسی داشته باشم؟

بهزاد اندیشمند
شنبه 06 خرداد 1396, 14:44 عصر
وقتی می نویسم stopservice ورودی از نوع intent می خواهد intent در اکتیویتی تعریف کرده بودم چطور به اون intent در این کلاس دسترسی داشته باشم؟


Intent svc=new Intent(this, BackgroundSoundService.class);
stopService(svc);

kamal70
یک شنبه 07 خرداد 1396, 12:58 عصر
خیرمشکل حل نشد