我有一个SoundService
在我的 Android 应用程序中,它允许我播放单个音轨。这是服务类:
public class UnopenedChestService extends Service {
MediaPlayer unopenedPlayer;
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void onCreate() {
unopenedPlayer = MediaPlayer.create(this, R.raw.audiofile);
unopenedPlayer.setLooping(true);
}
public int onStartCommand(Intent intent, int flags, int startId) {
unopenedPlayer.start();
return Service.START_NOT_STICKY;
}
public void onDestroy() {
unopenedPlayer.stop();
stopSelf();
super.onDestroy();
}
}
这工作正常,我可以启动和停止 MP3 文件 audiofile
与 startService(new Intent...
和stopService(new Intent...
分别。
我想添加可以在我的应用程序中播放的第二个声音。我做了一些挖掘,接近解决我的问题的唯一解决方案是创建另一个 SoundService
并播放不同的音频文件。
我这样做了,效果很好。
我的问题是感觉很浪费。我有很多重复代码,并且不断停止和启动 SoundService
的 2 个变体感觉很老套。
有没有比上面更好的解决方案,可以让我使用单个 SoundService
在 MP3 文件之间切换?
最佳答案
在启动/调用服务时,您可以通过 Intent 传递参数(例如歌曲名称)。然后,在 onStartCommand 中,您将获取这些参数(例如歌曲名称)并播放所选歌曲。这应该可行。
关于java - 具有多个 MP3 的单个媒体播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49481587/