首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查音乐是否是从哪个音乐应用中播放的?

如何检查音乐是否是从哪个音乐应用中播放的?
EN

Stack Overflow用户
提问于 2015-04-22 10:09:07
回答 1查看 1.4K关注 0票数 5

如何检查在android设备中播放音乐的音乐应用程序?

使用AudioManager,我们可以检查是否正在播放音乐。但它提供了播放音乐应用程序的细节。

(AudioManager)this.getSystemService(Context.AUDIO_SERVICE);= AudioManager am

如果在设备中播放音乐,am.isMusicActive()返回true。但我想要的音乐应用程序的名字,它是从它被播放。

参考资料:

如何通过使用广播接收器来检查音乐是否在播放? Android开发:查找当前正在播放音乐的应用程序。

例如,如果我播放谷歌音乐播放器的音乐。然后,我必须能够得到的音乐应用程序名为“谷歌音乐播放器”。

如能对此作出任何答复,将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-11-18 03:35:47

尝试此操作以获取当前播放track的文件路径:

代码语言:javascript
运行
复制
public Cursor query(Context context, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, int limit) {
    try {
        ContentResolver resolver = context.getContentResolver();
        if (resolver == null) return null;
        if (limit > 0) uri = uri.buildUpon().appendQueryParameter("limit", "" + limit).build();
        return resolver.query(uri, projection, selection, selectionArgs, sortOrder);
    } catch (UnsupportedOperationException ex) { return null; }
}
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String path = intent.getStringExtra("track").replaceAll("'","''");
        Cursor c = query(context, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Audio.Media.DATA }, MediaStore.Audio.Media.TITLE + "='" + path + "'",
                null, null, 0);
        try {
            if (c == null || c.getCount() == 0) return;
            int size = c.getCount();
            if (size != 1) return;
            c.moveToNext();

            // Here's the song path
            String songPath = c.getString(0);
            Log.d("ROAST_APP", "" + songPath);
        } finally {
            if (c != null) c.close();
        }
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    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");
    registerReceiver(mReceiver, iF);
}

资料来源:

当前播放音乐的音轨信息

针刺器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29794257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档