java - 具有多个 MP3 的单个媒体播放器

标签 java android

我有一个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 文件 audiofilestartService(new Intent...stopService(new Intent...分别。

我想添加可以在我的应用程序中播放的第二个声音。我做了一些挖掘,接近解决我的问题的唯一解决方案是创建另一个 SoundService并播放不同的音频文件。

我这样做了,效果很好。

我的问题是感觉很浪费。我有很多重复代码,并且不断停止和启动 SoundService 的 2 个变体感觉很老套。

有没有比上面更好的解决方案,可以让我使用单个 SoundService 在 MP3 文件之间切换?

最佳答案

在启动/调用服务时,您可以通过 Intent 传递参数(例如歌曲名称)。然后,在 onStartCommand 中,您将获取这些参数(例如歌曲名称)并播放所选歌曲。这应该可行。

关于java - 具有多个 MP3 的单个媒体播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49481587/

相关文章:

java - 以编程方式在 TextView 中设置文本的正确方法

android - 使用 Appium 进行强大的 React Native 元素查找

java - "Routing"threadpoolexecutor 内的任务

java - 二级名称节点和被动名称节点有什么区别

java - 比较谷歌地图 v2 android 中的两个 LatLng 对象

android - "Cannot draw recycled bitmaps"在附加到 Adapter 的 Gallery 中显示位图时

android - 从 Bottom Sheet 对话框 fragment 中获取值(value)

java - 如何从 EditView 检查密码?

java - 在 Android Activity 中添加计数器

java - 检测正则表达式中的特定标点符号的奇怪行为