U
Utente 399201
Ospite
Buongiorno,
Entro lunedì prossimo devo consegnare al corso che sto facendo un progetto fatto su Android Studio, il problema è che sono presenti due errori che non riesco a capire da cosa son dovuti ed essendo questo il progetto di fine corso mi girerebbe consegnare un progetto con errori.
Qualcuno che se ne intende più di me riuscirebbe a darmi una mano?
1° Errore
il primo "errore" avviene quando chiudo l'app. insieme a questa è presente una notifica, che fa da player per la musica, che non riesco a togliere (e continua a riprodurmi la canzone in sottofondo). Questa è la "soluzione" che avevo provato a fare
MainActivity
Nella classe MusicService
2° Errore
Il secondo errore, invece, avviene quando premo il pulsante play del player interno mi da errore
l'Errore che mi da
Grazie mille e scusate per i continui disturbi
Entro lunedì prossimo devo consegnare al corso che sto facendo un progetto fatto su Android Studio, il problema è che sono presenti due errori che non riesco a capire da cosa son dovuti ed essendo questo il progetto di fine corso mi girerebbe consegnare un progetto con errori.
Qualcuno che se ne intende più di me riuscirebbe a darmi una mano?
1° Errore
il primo "errore" avviene quando chiudo l'app. insieme a questa è presente una notifica, che fa da player per la musica, che non riesco a togliere (e continua a riprodurmi la canzone in sottofondo). Questa è la "soluzione" che avevo provato a fare
MainActivity
Java:
@Override
protected void onDestroy() {
super.onDestroy();
MusicService musicService = new MusicService();
musicService.cancelAllNotification(getApplicationContext());
}
Nella classe MusicService
Java:
void showNotification(int playPauseBtn){
// if you will go through the notification series playlist having
//5 videos you will get more knowledge about what i am doing here
Intent intent = new Intent(this, PlayerActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this,0,intent,0);
Intent prevIntent = new Intent(this, NotificationReceiver.class).setAction(ACTION_PREVIOUS);
PendingIntent prevPending = PendingIntent.getBroadcast(this,0,prevIntent,PendingIntent.FLAG_UPDATE_CURRENT);
Intent pauseIntent = new Intent(this, NotificationReceiver.class).setAction(ACTION_PLAY);
PendingIntent pausePending = PendingIntent.getBroadcast(this,0,pauseIntent,PendingIntent.FLAG_UPDATE_CURRENT);
Intent nextIntent = new Intent(this, NotificationReceiver.class).setAction(ACTION_NEXT);
PendingIntent nextPending = PendingIntent.getBroadcast(this,0,nextIntent,PendingIntent.FLAG_UPDATE_CURRENT);
byte[] picture = null;
picture = getAlbumArt(musicFiles.get(position).getPath());
Bitmap thumb = null;
if (picture != null) {
thumb = BitmapFactory.decodeByteArray(picture,0,picture.length);
} else {
thumb = BitmapFactory.decodeResource(getResources(),R.drawable.default_image);
}
notification = new NotificationCompat.Builder(this, CHANNEL_ID_2).setSmallIcon(playPauseBtn)
.setLargeIcon(thumb)
.setContentTitle(musicFiles.get(position).getTitle())
.setContentText(musicFiles.get(position).getArtist())
.addAction(R.drawable.ic_skip_previous,"Previous",prevPending)
.addAction(playPauseBtn,"Pause",pausePending)
.addAction(R.drawable.ic_skip_next,"Next",nextPending)
.setStyle(new androidx.media.app.NotificationCompat.MediaStyle().setMediaSession(mediaSessionCompat.getSessionToken()))
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setOnlyAlertOnce(true)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.build();
startForeground(2, notification);
}
public void cancelAllNotification(Context ctx){
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
if (nMgr != null) {
nMgr.cancelAll();
}
}
2° Errore
Il secondo errore, invece, avviene quando premo il pulsante play del player interno mi da errore
Java:
playPauseBtn.setOnClickListener(v -> {
if (musicService != null){
musicService.playPauseBtnClicked();
if (musicService != null && musicService.isPlaying()){
playPauseBtn.setImageResource(R.drawable.ic_pause);
}else if (musicService != null){
playPauseBtn.setImageResource(R.drawable.ic_play);
}
}
});
l'Errore che mi da
Codice:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.media.MediaPlayer.isPlaying()' on a null object reference
at com.example.musix.MusicService.isPlaying(MusicService.java:105)
at com.example.musix.NowPlayingFragmentBottom.lambda$onCreateView$1$com-example-musix-NowPlayingFragmentBottom(NowPlayingFragmentBottom.java:94)
at com.example.musix.NowPlayingFragmentBottom$$ExternalSyntheticLambda1.onClick(Unknown Source:2)
Grazie mille e scusate per i continui disturbi