簡體   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