मैं एक समाधान प्रदान करने की कोशिश करूंगा जिसका मैंने उपयोग किया है और अधिकांश संगीत खिलाड़ी अधिसूचना पट्टी में खिलाड़ी नियंत्रण दिखाने के लिए एक ही तकनीक का उपयोग करते हैं।
मैं एक सेवा चला रहा हूं, जिसका उपयोग मीडिया प्लेयर और उसके सभी नियंत्रणों को प्रबंधित करने के लिए किया जाता है। गतिविधि उपयोगकर्ता नियंत्रण उदाहरण के लिए सेवा में इरादे भेजकर सेवा के साथ सहभागिता करता है
Intent i = new Intent(MainActivity.this, MyRadioService.class);
i.setAction(Constants.Player.ACTION_PAUSE);
startService(i);
सेवा वर्ग में इरादों को प्राप्त करने और कार्रवाई करने के लिए मैं सेवा के onStartCommand विधि में निम्नलिखित कोड का उपयोग कर रहा हूं
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getAction().equals(Constants.Player.ACTION_PAUSE)) {
if(mediaPlayer.isPlaying()) {
pauseAudio();
}
}
नियंत्रण खेलने के साथ अधिसूचना दिखाने के लिए अपने प्रश्न का सटीक उत्तर देने के लिए। नियंत्रणों के साथ सूचना दिखाने के लिए आप निम्न विधियों को कॉल कर सकते हैं।
private void startAppInForeground() {
RemoteViews views = new RemoteViews(getPackageName(),
R.layout.notification_status_bar);
Intent playIntent = new Intent(this, MyRadioService.class);
playIntent.setAction(Constants.Player.ACTION_PLAY);
PendingIntent pplayIntent = PendingIntent.getService(this, 0,
playIntent, 0);
views.setOnClickPendingIntent(R.id.status_bar_play, pplayIntent);
views.setImageViewResource(R.id.status_bar_play,
R.drawable.status_bg);
Notification status = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
status = new Notification.Builder(this).build();
}
status.flags = Notification.FLAG_ONGOING_EVENT;
status.icon = R.mipmap.ic_launcher;
status.contentIntent = pendingIntent;
startForeground(Constants.FOREGROUND_SERVICE, status);
} आशा है कि यह वास्तव में आपकी मदद करता है। और आप जो चाहें हासिल कर पाएंगे। एक खुश कोडिंग है :)