我正在播放来自 Internet 的流,因为不应该在 UI 线程上处理网络操作等长进程,所以我正在使用 AsyncTask。在主线程中,我设置了一些 videoView 规范:
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videoview);
progressDialog = ProgressDialog.show(this, "Loading", "Please Wait", true, true);
videoView = (VideoView) findViewById(R.id.surface_view);
videoView.setVideoPath(ChannelPath);
videoView.setMediaController(new MediaController(this));
new LoadStream().execute("");
}
在 AsyncTask 我开始播放视频:
private class LoadStream extends AsyncTask<String, Void, Void> {
protected Void doInBackground(String... urls) {
videoView.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
videoView.start();
progressDialog.dismiss();
}
});
return null;
}
}
我试图在 AsyncTask 上拥有与 videoView 相关的所有部分,但无法在 AsyncTask 上设置视频路径和 setMediaController。我想知道哪个部分正是耗时的部分?我的代码好吗?还是我在 UI Thread 上还有很长的过程?