Android上の音楽プレーヤーで再生中の楽曲情報を取得する方法

Android用音楽プレーヤーが飛ばすブロードキャストインテントを捕獲する方法。ただのメモ。

Google Play Musicの場合。

public class GetMusic extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String a = intent.getAction();
        Bundle b = intent.getExtras();

        boolean playing = b.getBoolean("playing", false); // 再生中か否か、再生中であればtrue、再生していなければfalseを返す。
        String track = b.getString("track"); // 曲名
        String artist = b.getString("artist"); // アーティスト名
        String album = b.getString("album"); // アルバム
        Long duration = b.getLong("duration"); // 楽曲の時間[msec]
    }
}

AndroidManifest.xmlの<application></application>間には次のように追記。


        <receiver
            android:name=".Receiver.GetMusic"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.music.metachanged" />
                <action android:name="com.android.music.playstatechanged" />
                <action android:name="com.android.music.playbackcomplete" />
            </intent-filter>
        </receiver>

ソニーの端末にプリインストールされている音楽再生ソフトウェアの場合。

public class GetMusic extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String a = intent.getAction();
        Bundle b = intent.getExtras();

        String track = b.getString("TRACK_NAME"); // 曲名
        String artist = b.getString("ARTIST_NAME"); // アーティスト名
        String album = b.getString("ALBUM_NAME"); // アルバム
        // ソニー製端末のソフトウェアでは楽曲の時間は取得できない
    }
}

AndroidManifest.xmlの<application></application>間には次のように追記。


        <receiver
            android:name=".Receiver.GetMusic"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.sonyericsson.music.playbackcontrol.ACTION_TRACK_STARTED" />
                <action android:name="com.sonyericsson.music.playbackcontrol.ACTION_PAUSED" />
                <action android:name="com.sonyericsson.music.playbackcontrol.ACTION_SKIPPED" />
            </intent-filter>
        </receiver>

1 Trackback / Pingback

  1. ソニー NW-ZX1 – ももかん

Leave a Reply

Your email address will not be published.


*