5

我有一个活动课程和一个带有媒体播放器的服务。用户从他们想要播放的 SD 卡中选择 mp3。我使用 Intent extra 将该 mp3 的路径从活动发送到服务。

在服务中,媒体播放器可以启动并播放用户选择的 mp3。但是一个问题。如果用户按下暂停按钮,媒体播放器应该暂停并稍后在暂停的相同位置恢复歌曲。如何将命令从活动发送到应该暂停歌曲的服务?

将 mediaplayer 实例放在 Activity 中要容易得多。这样我就可以在那里放置一个 onclick 监听器和一个按钮。使用由服务运行的媒体播放器,它在活动之外,不能只是在屏幕上放一个按钮让他们按下暂停。

4

1 回答 1

5

两种选择:

  1. 如果您的服务是本地服务(这里应该是这种情况),您可以绑定活动和服务。有关如何执行此操作的示例,请参阅服务类文档

  2. 您也可以使用广播。基本上,您的服务中将有一个广播侦听器,它将期望广播操作,例如“com.mypackage.mediaplayer.Stop”、“com.mypackage.mediaplayer.Pause”、“com.mypackage.mediaplayer.Next”、.. . 然后,当单击按钮时,您的活动会简单地发送正确的广播消息。

您还应该查看android stock music player source code

完成相同类型的项目后,我建议使用选项#2。

于 2012-10-16T07:05:18.250 回答