Skip to content

Commit eb1af46

Browse files
committed
clear listener after calling stop inside dispose method
1 parent b9c61e2 commit eb1af46

1 file changed

Lines changed: 13 additions & 12 deletions

File tree

flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayer.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public void dispose() {
7070
rendererEventChannel.setStreamHandler(null);
7171
if (mediaPlayer != null) {
7272
mediaPlayer.stop();
73+
mediaPlayer.setEventListener(null);
7374
mediaPlayer.getVLCVout().detachViews();
7475
mediaPlayer.release();
7576
mediaPlayer = null;
@@ -125,7 +126,7 @@ public void onCancel(Object o) {
125126
// }
126127

127128
public void initialize(List<String> options) {
128-
this.options = options;
129+
this.options = options;
129130
libVLC = new LibVLC(context, options);
130131
mediaPlayer = new MediaPlayer(libVLC);
131132
setupVlcMediaPlayer();
@@ -242,19 +243,19 @@ public void onEvent(MediaPlayer.Event event) {
242243
}
243244

244245
void play() {
245-
if (mediaPlayer != null) {
246+
if (mediaPlayer != null && !mediaPlayer.isPlaying()) {
246247
mediaPlayer.play();
247248
}
248249
}
249250

250251
void pause() {
251-
if (mediaPlayer != null) {
252+
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
252253
mediaPlayer.pause();
253254
}
254255
}
255256

256257
void stop() {
257-
if (mediaPlayer != null) {
258+
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
258259
mediaPlayer.stop();
259260
}
260261
}
@@ -273,7 +274,9 @@ void setStreamUrl(String url, boolean isAssetUrl, boolean autoPlay, long hwAcc)
273274
if (mediaPlayer == null) return;
274275

275276
try {
276-
mediaPlayer.stop();
277+
if (mediaPlayer.isPlaying()) {
278+
mediaPlayer.stop();
279+
}
277280
//
278281
Media media;
279282
if (isAssetUrl)
@@ -295,15 +298,14 @@ void setStreamUrl(String url, boolean isAssetUrl, boolean autoPlay, long hwAcc)
295298
media.addOption(":no-omxil-dr");
296299
}
297300
if (options != null) {
298-
for (String option: options)
301+
for (String option : options)
299302
media.addOption(option);
300303
}
301304
mediaPlayer.setMedia(media);
302305
media.release();
303306
//
304-
mediaPlayer.play();
305-
if (!autoPlay) {
306-
mediaPlayer.stop();
307+
if (autoPlay) {
308+
mediaPlayer.play();
307309
}
308310
} catch (IOException e) {
309311
log(e.getMessage());
@@ -350,7 +352,7 @@ void seekTo(int location) {
350352

351353
long getPosition() {
352354
if (mediaPlayer == null) return -1;
353-
355+
354356
return mediaPlayer.getTime();
355357
}
356358

@@ -612,8 +614,7 @@ void castToRenderer(String rendererDevice) {
612614
if (isDisposed) {
613615
return;
614616
}
615-
boolean isPlaying = mediaPlayer.isPlaying();
616-
if (isPlaying)
617+
if (mediaPlayer.isPlaying())
617618
mediaPlayer.pause();
618619

619620
// if you set it to null, it will start to render normally (i.e. locally) again

0 commit comments

Comments
 (0)