Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在所有活动中播放声音_Java_Android - Fatal编程技术网

Java 如何在所有活动中播放声音

Java 如何在所有活动中播放声音,java,android,Java,Android,我想在我所有的活动中使用我的声音,而不仅仅是主要的活动。我把这条线 MediaPlayer ring = MediaPlayer.create(MainActivity.this, R.raw.song); ring.start(); 但这只适用于主要活动 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVi

我想在我所有的活动中使用我的声音,而不仅仅是主要的活动。我把这条线

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();

你可以试试这样的

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);

在服务中播放歌曲,并仅在服务中初始化媒体播放器对象

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 " />


一次只有一个活动处于活动状态。为什么你认为它的工作方式不同?这是一种可能的方式。您可以通过一个活动和多个片段来实现这一点。您可以在不中断音乐的情况下在活动中加载片段。或者你可以在你的应用程序类中这样做。我在这个项目中没有使用片段,只是使用活动。这就是我想做的,在不中断的情况下加载音乐。但是对于活动,我在哪里可以找到你提到的方法?我创建了一个类来将它放在那里或什么?如果在
MainActivity
中添加此方法,而不是在其他活动中调用此方法,例如
MainActivity.Playmusic(YourOtherActivity.this),则可以在活动中的任何位置使用此方法