0

ストリーミングされたオーディオ ファイルを再生するためのメディア プレーヤー サービスを作成しました。一時停止するアクションを含む通知を追加しました。サービスでこのアクションのアクション リスナーを取得する方法を知りたいです。

MediaPlayerService.java

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(this, MainActivity.class), 0);

    notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    noti = new Notification.Builder(getApplicationContext())
            .setOngoing(true)
            .setContentTitle("Lecture")
            .setTicker("Lecture d'un message en cours")
            .setContentText("Message audio en cours")
            .setContentIntent(pendingIntent)
            .setSmallIcon(R.drawable.ic_launcher)
            .addAction(android.R.drawable.ic_media_pause, "Pause", pendingIntent);

    notificationManager.notify(0, noti.build());

    return START_STICKY;

}
4

1 に答える 1

0

この質問は解決された可能性があると確信していますが、同じ問題があり、アクションごとに異なる保留中の意図を追加することで解決できました。これを以下のコードに示します。

private static Notification buildNotification(Context context, String filename, int recordFlag,boolean stopFlag,boolean playFlag) {
    PendingIntent pIntent = createPendingIntent(REQUEST_CODE_ACTIVIY, context, false);
    PendingIntent delIntent = getDeleteIntent(context);
    // Build notification
    // Actions are just fake
    int drawRecord =R.drawable.ic_record_audio;

    Notification.Builder builder = new Notification.Builder(context.getApplicationContext())
            .setContentTitle(RECORD_AUDIO)
            .setContentText(filename).setSmallIcon(R.drawable.ic_audio_list)
            .setContentIntent(pIntent)
            .setDeleteIntent(delIntent);


        builder = builder.addAction(drawRecord, RECORD, createPendingIntent(REQUEST_CODE_SERVICE_RECORD, context, true));
        builder = builder.addAction(R.drawable.ic_stop_white, STOP, createPendingIntent(REQUEST_CODE_SERVICE_STOP, context, true));

        builder = builder.addAction(R.drawable.ic_play_white, PLAY, createPendingIntent(REQUEST_CODE_SERVICE_PLAY, context, true));


    return builder.build();
}

お役に立てれば

于 2015-11-25T16:34:40.607 に答える