具有不同按钮视图的多线程:安卓



所以我正在编写一个安卓代码,其中有 3 个按钮:录制、暂停、取帧。"录制"按钮录制视频,暂停按钮暂停视频显示在"视频视图"中,"取帧"按钮在图像视图中显示暂停的帧。现在我需要 3 个线程 - 一个主线程用于用户交互(暂停按钮(,一个子线程记录视频(录制按钮(,第二个子线程保存帧(取帧按钮(。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mvideoview = (VideoView) findViewById(R.id.videoView);
imgview = (ImageView) findViewById(R.id.imageView);
mrecord = (Button) findViewById(R.id.button);
mpause = (Button) findViewById(R.id.button2);
mtakeframe = (Button) findViewById(R.id.button4);
mrecord.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dispatchTakeVideoIntent();
mvideoview.start();
}
});
mpause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mvideoview.pause();
}
});

mtakeframe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bitmap bmp = takeFrame();
imgview.setImageBitmap(bmp);
}
});
}
private void dispatchTakeVideoIntent() {
//code directs towards the video recorder screen
}
protected void onActivityResult(int requestcode, int resultcode, Intent intent) {
//recorded video sent back and its path stored
}
public Bitmap takeFrame() {
//paused frame shown in imageView
}

我尝试将不同的线程放在不同按钮的onClick(视图视图(上,但最后应用程序崩溃,说错误"只有创建视图层次结构的原始线程才能触摸其视图"。而且,如果我想再添加一个PLAY(播放暂停的视频(按钮,那么我应该怎么写,我无法理解。有人可以在这里帮助我如何在 Android 中线程这样的程序吗?

视图对象只能通过 UI 线程修改或执行任何操作 如果另一个线程尝试处理 View 对象,它应该像这样调用,

runOnUiThread(new Runnable() {
@Override
public void run() {
// do the view operation here
}
});

有关更多信息,您可以参考此,此

最新更新