i created a MediaPlayer on adapter
void setData(Users data) {
mediaPlayer = new MediaPlayer();
if (!data.getAudioIntro().equals("")) {
try {
mediaPlayer.setDataSource(data.getAudioIntro());
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
booleanCallBack.checkAudio(true);
username.setText(data.getUsername());
Glide.with(context).load(data.getAvatar()).into(imageView);
}
});
mediaPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
}
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!data.getAudioIntro().equals("")) {
if (mediaPlayer.isPlaying())
mediaPlayer.pause();
else {
mediaPlayer.start();
}
} else {
Toast.makeText(context, "No Voice intro", Toast.LENGTH_SHORT).show();
}
}
});
}
It work perfectly. then i create method to stop Audio
public void stopMediaplayer() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
} else {
mediaPlayer.stop();
mediaPlayer.release();
}
}
on Fragment, i call this method when CardView Swiped
@Override
public void onCardSwiped(Direction direction) {
adapter.stopMediaplayer();
}
but i get the error
E/MediaHTTPConnection: java.lang.NullPointerException: Attempt to invoke virtual method 'java.net.URLConnection java.net.URL.openConnection()' on a null object reference
at android.media.MediaHTTPConnection.seekTo(MediaHTTPConnection.java:256)
at android.media.MediaHTTPConnection.getMIMEType(MediaHTTPConnection.java:479)
at android.media.IMediaHTTPConnection$Stub.onTransact(IMediaHTTPConnection.java:159)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
and another error
/MediaHTTPConnection: java.io.IOException: Canceled
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:172)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:144)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:106)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:400)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:333)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:483)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:429)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:560)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:106)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:30)
at android.media.MediaHTTPConnection.seekTo(MediaHTTPConnection.java:292)
at android.media.MediaHTTPConnection.getMIMEType(MediaHTTPConnection.java:479)
at android.media.IMediaHTTPConnection$Stub.onTransact(IMediaHTTPConnection.java:159)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
how can i fix it , please help me!
This life is not easy, but if every day we give our best effort we can make all our dreams. I wish you well on this day.