如何从活动中控制媒体服务?

时间:2016-12-19 15:41:22

标签: java android service media-player

我有下一个情况 - 我开发音乐应用程序,它包含媒体服务。 该应用程序还包含MainActivity,其中包含4个片段。在每个片段的底部有一个有游戏的栏,跳过下一个,跳过前一个,随机播放和重复,看起来像这样:the bar in the bottom refers to MainActivity

底部的栏指的是MainActivity。 此外,在“专辑”选项卡和“播放列表”选项卡中,您可以点击相册和播放列表的列表,它将带您进入另一个带有录音专辑/播放列表歌曲的活动。我只有一个服务,所以我将它绑定到所有服务(一个片段,两个活动,实际上我有泄漏,但这是另一个问题)

问题是我如何从底部的那个栏控制媒体播放(跳过/上一个,播放/暂停,随机播放,重复播放)。

我已经在按钮上设置OnClickListener并尝试调用服务方法,但在这种情况下我遇到如下错误: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.media.MediaPlayer.isPlaying()' on a null object reference

我试过了两个: private MediaPlayerService mediaPlayerService = MediaPlayerService.getInstance() 以防万一 private MediaPlayerService mediaPlayerService = new MediaPlayerService()(当然最后一个不起作用)

我试图制作mediaPlayer单身,是的,它有效,但是skipNext / Previouse还有另外一个问题 - int的songPosition和(ArrayList)也应该是单身(或者是类中的静态),不错,我做到了,但后来另一个问题prepareAsync在状态1错误中调用... W @ T @ F @ ...对不起,这是我的第一个项目,也许我做了很简单的事情,开发出来很复杂。任何帮助都会很棒。 谢谢。

1 个答案:

答案 0 :(得分:0)

好的,最后我找到了答案,说实话,这并不是很难。实际上我忘记做的是将服务绑定到MainActivity,在我做完之后,一切顺利。