获取有关音频信息,在另一个应用程序打 [英] Get info about audio, playing in another application

查看:180
本文介绍了获取有关音频信息,在另一个应用程序打的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何能得到有关源(filedesc。或URI)的信息从其他应用程序播放音频?

How can i get info about source (filedesc. or uri) from which another application playing audio?

在AudioManager只有isMusicActive()方法,它不提供任何附加信息。 而且因为它不是我的应用程序,我没有任何MediaPlayer对象。

In AudioManager there is only isMusicActive() method, which doesn't give any additional information. And because of it isn't my application, i doesn't have any MediaPlayer object.

推荐答案

注册一个广播接收器已知的行动意图和处理广播显示或做一些与轨道信息,<一个href="http://stackoverflow.com/questions/10510292/track-info-of-currently-playing-music">source:

Register a broadcast receiver for known action intents and handle the broadcast to show or do something with the track information, source:

public class CurrentMusicTrackInfoActivity extends Activity {

    public static final String SERVICECMD = "com.android.music.musicservicecommand";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.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");
        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(mReceiver, iF);
    }

    private BroadcastReceiver mReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            String cmd = intent.getStringExtra("command");
            Log.v("tag ", action + " / " + cmd);
            String artist = intent.getStringExtra("artist");
            String album = intent.getStringExtra("album");
            String track = intent.getStringExtra("track");
            Log.v("tag", artist + ":" + album + ":" + track);
            Toast.makeText(CurrentMusicTrackInfoActivity.this, track, Toast.LENGTH_SHORT).show();
        }
    };

}

这篇关于获取有关音频信息,在另一个应用程序打的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆