gpt4 book ai didi

Android获取当前歌曲播放和歌曲更改事件,如Musixmatch

转载 作者:太空狗 更新时间:2023-10-29 14:02:54 25 4
gpt4 key购买 nike

我想要实现的与Musixmatch非常相似正在做。

我需要在音乐开始播放和歌曲更改时得到通知。所有这一切都在服务中,因为我的应用程序可能已关闭(即使 musicmatch 也会这样做)。

enter image description here

enter image description here

在上述情况下,即使 Musixmatch 应用程序未运行,每当我更改 spotify 或任何播放器上的歌曲时,我都会收到通知。

任何人都可以告诉我如何实现这一目标。我不需要代码帮助,只需要知道如何实现它。我真的很困惑 Musixmatch 是怎么做到的。

最佳答案

这里是一个解决方案,用于查找音乐播放器是否正在播放。

   AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
if(manager.isMusicActive())
{
// Something is being played.
}

然后您可以从音乐播放器获取当前正在播放的歌曲的信息。将下面的代码粘贴到 Activity 类中的 onCreate 方法中。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

IntentFilter iF = new IntentFilter();

// Read action when music player changed current song
// I just try it with stock music player form android

// stock music player
iF.addAction("com.android.music.metachanged");

// MIUI music player
iF.addAction("com.miui.player.metachanged");

// HTC music player
iF.addAction("com.htc.music.metachanged");

// WinAmp
iF.addAction("com.nullsoft.winamp.metachanged");

// MyTouch4G
iF.addAction("com.real.IMP.metachanged");

registerReceiver(mReceiver, iF);
}

在您的 Activity 类中创建新的 BroadcastReceiver mReceiver。

 BroadcastReceiver mReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context arg0, Intent intent) {

String action = intent.getAction();
String cmd = intent.getStringExtra("command");
Log.d("mIntentReceiver.onReceive ", action + " / " + cmd);
String artist = intent.getStringExtra("artist");
String album = intent.getStringExtra("album");
String track = intent.getStringExtra("track");
Log.d("Music", artist + ":" + album + ":" + track);
}

关于Android获取当前歌曲播放和歌曲更改事件,如Musixmatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34389404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com