Android 视频视图在AsyncTask onPostExecute后未启动
如果在使用AsyncTask将其加载到文件后启动,VideoView将显示白色屏幕。下面是代码Android 视频视图在AsyncTask onPostExecute后未启动,android,android-asynctask,android-videoview,Android,Android Asynctask,Android Videoview,如果在使用AsyncTask将其加载到文件后启动,VideoView将显示白色屏幕。下面是代码 if (file.exists()) { loadVideo(file, infoImageView, infoVideoView); } else { new LoadToFile(file, infoImageView, infoVideoView).execute(); } 我的loadVideo功能是 public void loadVideo(File file, ImageView
if (file.exists()) {
loadVideo(file, infoImageView, infoVideoView);
}
else {
new LoadToFile(file, infoImageView, infoVideoView).execute();
}
我的loadVideo功能是
public void loadVideo(File file, ImageView imageView, final VideoView videoView) {
imageView.setVisibility(View.GONE);
videoView.setVisibility(View.VISIBLE);
videoView.setVideoPath(file.getAbsolutePath());
videoView.start();
}
我在loadVideo函数所在的类中定义了loadToFile类
class LoadToFile extends AsyncTask {
@Override
protected Object doInBackground(Object[] objects) {
downloadFile();
return file;
}
@Override
protected void onPostExecute(Object o) {
File file = (File) o;
loadVideo(file, imageView, videoView);
}
}
当有文件时,VideoView可以毫无问题地播放视频。但是当我使用AsyncTask将视频加载到文件时,VideoView只显示白色屏幕。创建文件时没有任何问题,如果我重新启动活动,它将毫无问题地播放。为什么要下载文件?你可以直接播放url。我需要它,以备将来使用。如果你担心缓存,那么你可以使用它。它的效果很好。但是如果你真的想按自己的方式去做,那么检查文件是否成功写入。是的,文件写入成功,并且当我重新启动活动时,它会播放文件。