پخش یک موزیک در تمام اکتیویتی ها
سلام
من یک موزیک بگ گراند برای نرم افزار می خواهم نشان بدهم .نرم افزار من 10 اکتیوتی داره
در Splash نرم افزار من یک سرویس را فعال می کنم با کد زیر
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.background_music);
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() {
}
موزیک اجرا می شود .تمام و کمال D:
با این کد که در اکتیوتی اصلی گذاشتم وقتی کاربر با دکمه بگ خارج شد سرویس را از بین می برم
Intent intent = new Intent(this, BackgroundSoundService.class);
stopService(intent);
مشکل اینجاست که مثلا کاربر در اکتیوتی 4 هست که به این صورت است
splash>main activity<activity 2<activity 3<activity4
دکمه منو رو زد و از برنامه خارج شد و رفت توی یه نرم افزار دیگه.اما باز موزیک اجرا می شود.
به نظر اساتید من باید چه کار کنم؟
شما باید کد متوقف کردن موزیک رو روی دکمه منو قرار بدی...جستجو کنید به نتیجه میرسید...
با سلام دوست عزیز ببین با این مشکلت حل میشه
@Override
protected void onPause() {
super.onPause();
if (this.isFinishing()) {
mediaplayer.stop();
}
}
من در برنامم و در داخل یکی از اکتیویتی هام یک فایل html دارم . اون اکتیویتی هم دارای یک موزیک هست .
وقتی اون اکتیویتی باز میشه موزیک هم پخش میشه ، اما بعد 5 یا 6 ثانیه موزیک قطع میشه ،
کسی از دوستان اگر دلیل رو می دونه ، ممنون میشم راهنمایی کنه
کد من اینه :
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.webkit.WebView;
public class nogol extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nogol);
WebView webView = (WebView) findViewById(R.id.nogol);
webView.loadUrl("file:///android_asset/nogol.html");
final MediaPlayer mp=MediaPlayer.create(nogol.this, R.raw.lala);
mp.start();
}
}
sagheb95 @ از این کد استفاده کنید
public class nogol extends Activity {
public MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nogol);
player = MediaPlayer.create(G.currentActivity, R.raw.lala);
player.setLooping(true); // Set looping
player.setVolume(100, 100);
player.start();
WebView webView = (WebView) findViewById(R.id.nogol);
webView.loadUrl("file:///android_asset/nogol.html");
}
}
کلاس G هم یادتون نره !
من تست کردم جواب داد <
کلاس G
public class G extends Application {
public static MediaPlayer player;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
player = MediaPlayer.create(context, R.drawable.music);
player.setLooping(true);
}
}
این کد هارو توی اکتیویتی مورد نظر یا کلاس ActivityEnhanced میتونید قرار بدید <
public class ActivityEnhanced extends Activity {
@Override
protected void onResume() {
G.currentActivity = this;
super.onResume();
player.start();
}
@Override
protected void onStop() {
super.onStop();
G.player.stop();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .