我正在使用Android,并使用以下代码使用res / raw播放电影的视频视图:
public static void startVideo(String moviename) {
playingVideo = true;
final String name = moviename + "x264";
instance.runOnUiThread(new Runnable() {
public void run() {
instance.mVideoView.bringToFront();
instance.mVideoView.setVisibility(View.VISIBLE);
String uri = "android.resource://" + instance.getPackageName()
+ "/raw/" + name;
instance.mVideoView.setVideoURI(Uri.parse(uri));
instance.mVideoView.requestFocus();
instance.mVideoView.start();
}
});
但是,如果我在活动的onCreate方法中使用有效的资产图像文件名作为参数调用以下函数(即“backdrop.jpg”),则视频视图似乎不再显示:
public Bitmap getBitmapFromAsset(String strName) {
AssetManager assetManager = this.getAssets();
InputStream is;
Bitmap bitmap = null;
try {
is = assetManager.open(strName);
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
return null;
}
return bitmap;
}
如果我甚至在任何代码中使用生成的位图都没关系,似乎仅仅调用上述函数的行为似乎会导致视频播放器停止显示。只需注释掉除了调用该函数并将结果存储在局部变量中之外的行,会导致视频视图再次正常显示。
此外,没有其他任何东西似乎受到影响......例如,我的程序中有一个GLSurfaceView,显示效果很好。
我对此感到非常困惑......并且非常感谢任何帮助。
提前致谢。
答案 0 :(得分:0)
好吧,我找到了解决方案......结果发现,我的程序中的GLSurfaceView实际上覆盖了视频。我仍然不确定为什么,因为我试图明确地将视频视图放到顶部,但是,在播放视频时保持GLSurfacview隐藏似乎可以接受。