我有一個AsyncTask,我隱藏視頻視圖,開始視頻播放,並顯示視頻播放時的視頻視圖。VideoView無法啓動時隱形
但是當視頻視圖設置爲不可見時,視頻不會啓動,異步任務會一直掛在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