[英]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.