2021年2月11日星期四

When videos are just loaded or paused, they are completely black (on Android)

This happens on Android only. Videos work properly on iOS and Simulator.

The problem is that when my videos are loaded into the MediaPlayer, the displayed frame is and remains completely black. After pressing play, the video displays correctly. By pressing pause, the frame on which the pause occurred is shown correctly. However, if the app switches to background and then back to foreground, the paused video goes back to completely black.

How can I fix this problem?

The relevant part of my code is more or less as follows:

        Media video = MediaManager.createMedia(videoFilePath, true, () -> {              Runnable callback = runOnVideoCompletion.get();              if (callback != null) {                  callback.run();              }          });          video.setNativePlayerMode(false);          video.prepare();          MediaPlayer mediaPlayer = new MediaPlayer(video) {              @Override              public Dimension getPreferredSize() {                  return new Dimension(size, size);              }          };          mediaPlayer.setHideNativeVideoControls(true);          mediaPlayer.setMaximize(false);          mediaPlayer.hideControls();          mediaPlayer.setAutoplay(false);            Container mediaPlayerCnt = new Container(new LayeredLayout(), "NoMarginNoPadding") {              @Override              public Dimension getPreferredSize() {                  return new Dimension(size, size);              }          };          mediaPlayerCnt.add(mediaPlayer);            [...]  
https://stackoverflow.com/questions/66144759/when-videos-are-just-loaded-or-paused-they-are-completely-black-on-android February 11, 2021 at 04:47AM

没有评论:

发表评论