【发布时间】:2011-11-28 04:08:13
【问题描述】:
我有一个 AsyncTask,我在其中隐藏一个视频视图,开始视频播放,并在视频播放时显示视频视图。
但是当视频视图设置为不可见时,视频将无法启动,异步任务一直挂在 onBackground 中。如果我注释掉这一行,视频就会开始播放。 为什么视频视图需要可见表面?
public void walk(final View v) {
new AsyncTask() {
@Override
protected void onPreExecute() {
super.onPreExecute();
mVideoView.setVisibility(View.INVISIBLE); // this line causes video not to start
mVideoView.start();
}
@Override
protected Object doInBackground(Object... objects) {
while (!mVideoView.isPlaying()) {}
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
mVideoView.setVisibility(View.VISIBLE);
}
}.execute();
我这样做的一些背景知识:我尽量避免在开始播放视频时常见的黑色闪光问题:
https://stackoverflow.com/search?q=%5Bandroid%5D+videoview+black
https://stackoverflow.com/search?q=%5Bandroid%5D+video+%5Bmediaplayer%5D+black
【问题讨论】:
标签: android android-asynctask android-videoview android-mediaplayer