gpt4 book ai didi

android - 由于现有相机用户,相机 "0"手电筒不可用

转载 作者:行者123 更新时间:2023-12-05 00:12:33 26 4
gpt4 key购买 nike

我想创建一个应用程序,它有一个录制视频的按钮和另一个单独的切换按钮,用于在录制视频期间打开闪光灯。

我已经使用 camera2 API 为最近的机器人构建了相机应用程序,该应用程序可通过图像按钮访问。我将 torch 模式访问设置为切换按钮,但这根本不起作用。但是切换按钮可以单独访问闪光灯。

public class MainActivity extends AppCompatActivity {


private TextureView.SurfaceTextureListener mSurfaceTextureListener = new TextureView.SurfaceTextureListener() {
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
setupCamera(width,height);
connectCamera();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

createFolder();

mMediaRecorder = new MediaRecorder();

mTextureView = (TextureView) findViewById(R.id.textureView);
mRecordButtonimg = (ImageButton) findViewById(R.id.video_online_button);
mRecordButtonimg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (misRecording) {
misRecording = false;
mRecordButtonimg.setImageResource(R.mipmap.ic_launcher);
mMediaRecorder.stop();
mMediaRecorder.reset();
startPreview();
} else {
checkWriteStoragePermission();
misRecording = true;
mRecordButtonimg.setImageResource(R.mipmap.ic_launcher_round);
}
}
});

mButtonLights = (ToggleButton) findViewById(R.id.buttonLights);
mButtonLights.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
cameraManager.setTorchMode(mCameraId, mButtonLights.isChecked());
}catch (CameraAccessException e){
e.printStackTrace();
}
}
});
}
}

我刚刚将设置的手电筒模式添加到 onClickListenser。我应该在其他地方添加它吗?因为将它添加到预览中没有任何意义!而且我已经在检查代码中的后置摄像头(使用手电筒时 id 为 0),所以我不知道为什么代码不起作用。

最佳答案

了解如何在相机预览时打开和关闭手电筒。在按钮上单击以打开/关闭灯,使用此代码:

//at some other function where camera is initialised and start preview
//...
Camera camera = Camera.open();
camera.startPreview();
//...
boolean lightOn = false;
//...

buttonLight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Camera.Parameters p = camera.getParameters();

if (!lightOn) {
lightOn = true;
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
} else {
lightOn = false;
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
}
}
});

快乐编码! :D

关于android - 由于现有相机用户,相机 "0"手电筒不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56335861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com