是否可以使用 xamarin android 在 android 上獲取當前正在播放的歌曲?
我嘗試使用音頻管理器,但我無法從這里讀取當前曲目
AudioManager am = (AudioManager)Application.Context.GetSystemService(Context.AudioService);
提前致謝,
uj5u.com熱心網友回復:
當手機正在播放音樂時,系統會發送廣播,其中包含有關音樂的資訊。所以你可以使用 BroadcastReceiver 來獲取它。我做了一個簡單的演示來獲取當前播放的曲目。
MainActivity.cs:將以下代碼添加到 OnCreate 方法中
IntentFilter iF = new IntentFilter();
iF.AddAction("com.android.music.metachanged");
iF.AddAction("com.android.music.playstatechanged");
iF.AddAction("com.android.music.playbackcomplete");
iF.AddAction("com.android.music.queuechanged");
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.real.IMP.metachanged");
iF.AddAction("com.sonyericsson.music.metachanged");
iF.AddAction("com.rdio.android.metachanged");
iF.AddAction("com.samsung.sec.android.MusicPlayer.metachanged");
iF.AddAction("com.andrew.apollo.metachanged");
RegisterReceiver(new MusicInfoReceiver(),iF);
MusicInfoReceiver.cs
[BroadcastReceiver]
public class MusicInfoReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
String action = intent.Action;
Boolean playing = intent.GetBooleanExtra("playing", false);
String cmd = intent.GetStringExtra("command");
String artist = intent.GetStringExtra("artist");
String album = intent.GetStringExtra("album");
String track = intent.GetStringExtra("track");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/439382.html
