VideoView
播放视频(m3u8)。
在此VideoView
活动中,我使用Thread
和ExecutorService(newCachedThreadPool)
来获取播放网址和其他信息。
当我想回到上一次活动时,我会这样做:
@Override
public void onDestroy() {
super.onDestroy();
if (videoView != null) {
videoView.stopPlayback();
videoView = null;
}
if (executor != null) {
executor.shutdownNow();
executor = null;
}
}
这里是Runnable
private Runnable changeSeekBar = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
while (seekBarAutoFlag) {
if (null != videoPlay.this.videoView&& videoPlay.this.videoView.isPlaying()) {
video_seekBar.setProgress((int) videoView.getCurrentPosition());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
和这样的激励:
executor.execute(changeSeekBar);
这是错误信息 enter image description here
答案 0 :(得分:0)
最后,我使用EventBus取代了Thread + Handler,并且它起作用了。
这里是EventBus github:https://github.com/greenrobot/EventBus
非常感谢你的帮助:)