Codenameone MediaPlayer 在 Android 上生成“无法播放此视频”错误我该如何拦截对话框以使其无提示地失败

Codenameone MediaPlayer generates 'can't play this video' error on Android how do i intercept the dialog so it fails silently

我的 codenameone 项目有一个 mediaPlayer,它可以在下载视频后播放视频,在某些情况下,当网络中断时,视频仍然保存在设备上,即使它已损坏,当播放器尝试播放该视频时,我得到“无法播放此视频”对话框。我怎样才能拦截它,这样它就不会显示对话框,我可以在后台处理错误,我的媒体播放器代码如下

video = MediaManager.createMedia(videostream, "video/mp4", new Runnable() {
                                                @Override
                                                public void run() {

                                                    videoIsPlaying = false;
                                                    videoCounter++;

                                                }
                                            });



                                            video.setNativePlayerMode(true);

                                            newmp = new MediaPlayer(video);

                                            newmp.setAutoplay(true);
                                            newmp.hideControls();

                                            newmp.setHideNativeVideoControls(true);

我会把它分成两个过程:

  • 下载
  • 播放

您可以将视频下载到本地文件系统,播放该文件。通过分离,您还可以在下载过程中创建令人愉悦的进度动画,甚至提供下载速度指示。

一个简单的 download/play 过程看起来像这样:

import static com.codename1.ui.CN.*;

然后 playback/download:

String f = getAppHomePath() + "videoName.mp4";
if(Util.downloadUrlToFile(url, f, true)) {
    video = MediaManager.createMedia(f, () -> {
          videoIsPlaying = false;
          videoCounter++;
      });

}