2017-08-23 27 views
-6

我想在我的所有活動中使用我的聲音,而不僅僅是主要活動。我把這條線如何在所有活動中播放聲音

MediaPlayer ring = MediaPlayer.create(MainActivity.this, R.raw.song); 
ring.start(); 

但只適用於主要活動。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    MediaPlayer ring = MediaPlayer.create(MainActivity.this, R.raw.song); 
    ring.start(); 
+0

一次只有一個活動處於活動狀態。你爲什麼認爲它的工作方式不同? –

+0

這是一個可能的方法。你可以通過一個活動和多個片段來做到這一點。您可以在您的活動中加載片段而不會中斷音樂。或者,也許你可以在你的Application類中做到這一點。 – SripadRaj

+0

我沒有在這個項目中使用片段,只是活動。這是我想要加載音樂而不中斷它。但與活動 – ALi

回答

0

,你可以嘗試這樣的事情

1.在您的所有活動添加以下代碼

MediaPlayer ring = MediaPlayer.create(MainActivity.this,  
    R.raw.song); 
ring.start(); 

2.創建一個方法,像這樣從你的活動稱之爲味精你想播放音樂

public void Playmusic(Context context){ 
    MediaPlayer ring = MediaPlayer.create(context, R.raw.song); 
    ring.start(); 
} 

現在只是調用這個方法這樣

Playmusic(MainActivity.this); 
+0

我在哪裏可以提到你的方法?我創建了一個類來放置它或什麼? – ALi

+0

如果你在你的'MainActivity'中添加這個方法而不是像這樣''MainActivity.Playmusic(YourOtherActivity.this)'''''''''''' –

0

服務播放歌曲和初始化媒體播放器對象有唯一

Intent svc=new Intent(this, BackgroundSoundService.class); 
startService(svc); 
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); 
    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() { 

} 
} 

請撥打此服務清單

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