【问题标题】:how to extract song name currently playing in any music player in android如何提取当前在android的任何音乐播放器中播放的歌曲名称
【发布时间】:2015-12-16 09:35:39
【问题描述】:

IntentFiLter iF IntentFiLter();
iF.addAction("com.android.music.metachanged");
iF.addAction("com.htc.music.metachanged");
iF.addAction("fm.last.android.metachanged");
iF.addAction("com.sec.android.app.music.metachanged");
iF.addAction("com.nullsoft.winamp.metachanged");
iF.addAction("com.amazon.mp3.metachanged");
iF.addAction("com.miui.player.metachanged");
iF.addAction("com.Peal.IMP.metachanged");
iF.addAction("com.sonyericsson.music.metachanged");
iF.addAction("com.Pdio.andPoid.metachanged");
iF.addAction("com.samsung.sec.android.MusicPlayeP.metachanged");
iF.addAction("com.andPew.apollo.metachanged");

registerReceiver(mReceiveP, iF);

问题是当我第一次打开应用程序时,它没有显示歌曲的名称。但是现在当应用程序打开并播放下一首歌曲时,它会正确显示名称。当我第一次打开应用程序时需要做一些事情,以便它自动播放当前歌曲。

请帮忙

【问题讨论】:

  • 请不要发布代码截图。只需将代码格式复制为您问题中的代码即可。

标签: android audio-player android-music-player


【解决方案1】:

您正在注册IntentFilter 以接收不同音乐播放器的广播。每当一首歌曲开始播放时(如开始播放),音乐播放器就会广播此信息。当您的应用启动时,当前歌曲已经在播放(如在应用启动前开始播放),因此不会对其进行广播。

您可以创建一个Service,该Service 已注册到将歌曲信息存储到例如的 BroadcastIntent 中。 SharedPrefs 供您的应用在启动时检索。

【讨论】:

  • 我将使用注册到存储歌曲信息的 BroadcastIntent 的服务。但是该服务需要一直运行。该怎么做?
  • developer.android.com/guide/components/services.html 可能是一个很好的起点。它不需要一直运行。使用广播接收器,操作系统将在相关广播事件中唤醒它
  • 所以你是说一旦某些媒体播放器播放,我的服务就会自动启动?我必须使用哪种类型的服务,请您具体说明一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多