繁体   English   中英

Android:以编程方式创建的VideoView显示黑屏

[英]Android: Programmatically created VideoView is showing black screen

因此,我有一个完全以编程方式制作的VideoView ,如下所示:

loadingVideo = new VideoView(getContext());
String videoPath = "android.resource://" + splashActivity.getPackageName() + "/" + R.raw.loading_video;
loadingVideo.setVideoURI(Uri.parse(videoPath));
loadingVideo.setLayoutParams(new FrameLayout.LayoutParams(Constants.PIXEL_WIDTH, Constants.PIXEL_HEIGHT));
loadingVideo.setTranslationX(0);
loadingVideo.setTranslationY(0);
loadingVideo.start();
this.widgetContainer.addView(loadingVideo);

我知道视频正在做某事,因为后来我的OnCompletionListener确实关闭了,问题是我实际上什么也看不到,只是黑屏了。 我在这里画方法:

if(loadingVideo.isPlaying()) {
    loadingVideo.draw(canvas);
    System.out.println();
}

使用以下命令以60fps的速率刷新draw(Canvas canvas)方法:

Canvas canvas = null;
SurfaceHolder sh = getHolder();
boolean unlocked = false;
try {
    if(sh.getSurface().isValid()) {
        canvas = sh.lockCanvas();
        synchronized(sh) {
            draw(canvas);
        }
    }
} catch(Exception e) {
    if(canvas != null && sh.getSurface().isValid()) {
        sh.unlockCanvasAndPost(canvas);
        unlocked = true;
    }
    e.printStackTrace();
} finally {
    if(!unlocked && canvas != null && sh.getSurface().isValid()) {
        sh.unlockCanvasAndPost(canvas);
    }
}

我不明白为什么它没有画图或我做错了什么。

旁注:我知道我这样做的方式似乎很奇怪,但是我知道它可行,因为我已经在其他项目中以这种方式创建了其他视图,并且它们运行良好。 除了黑屏,我无法让视频显示任何东西。

loadingVideo.setZOrderOnTop(true); 

之前

loadingVideo.start();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM