- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我的应用创建了一个手电筒 fragment ,我已经实现了这段代码并打开了手电筒,但我无法将其关闭。
我尝试用一个按钮或像现在这样用两个按钮打开和关闭灯,但没有任何区别。
当我切换 fragment 时,灯会熄灭。
我希望任何人都知道该怎么做。谢谢
public class Flashlight extends Fragment implements SurfaceHolder.Callback {
private View view;
Button button_On, button_Off;
private boolean lightIsOn = false;
Camera camera;
android.hardware.Camera.Parameters parameters;
@Override
public void onStart() {
super.onStart();
SurfaceView preview = (SurfaceView) getView().findViewById(R.id.PREVIEW);
SurfaceHolder mHolder = preview.getHolder();
mHolder.addCallback(this);
}
@Override
public void onPause() {
super.onPause();
turnOffLight();
}
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
final Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_flashlight, container, false);
button_On = (Button) view.findViewById(R.id.button_On);
button_Off = (Button) view.findViewById(R.id.button_Off);
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA,}, PackageManager.PERMISSION_GRANTED);
}
if (!getActivity().getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
Toast.makeText(getActivity(), "Device has no flashlight", Toast.LENGTH_SHORT).show();
}
button_On.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
turnOnLight();
}
});
button_Off.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
turnOffLight();
}
});
return view;
}
打开/关闭灯:
private void turnOnLight() {
if (!lightIsOn) {
if (camera == null || parameters == null) {
return;
}
parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
lightIsOn = true;
}
}
private void turnOffLight() {
if (lightIsOn) {
if (camera == null || parameters == null) {
return;
}
parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
lightIsOn = false;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (camera != null) {
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
if (camera == null) {
camera = Camera.open();
parameters = camera.getParameters();
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
camera.release();
camera = null;
}
}
}
}
list :
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
XML:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Flashlight">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<SurfaceView
android:id="@+id/PREVIEW"
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_marginBottom="730dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button_On"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="on" />
<Button
android:id="@+id/button_Off"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="off" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
最佳答案
好的,如下所示更新 list 文件中的权限:
<permission android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal"
android:label="@string/permlab_flashlight"
android:description="@string/permdesc_flashlight" />
尝试使用以下代码关闭灯:
cam.stopPreview();
cam.release(); // Very Important line
关于java - 手电筒 fragment Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875887/
我正在使用代码(在 XCode 4 之前在另一个项目中使用过),现在如果我打开手电筒,它会闪烁一次然后保持打开状态。 像这样:-*-****,其中-=off & *=on 我正在使用的代码: AVCa
我试图用 LED/手电筒显示一些效果,但它没有快速闪烁。我什至尝试过 sleep(2),但眨眼需要时间。我希望它闪烁得更快。 public void flash_effect() throws Int
我知道如何打开/关闭后置摄像头的闪光灯。我知道如何切换前置/后置摄像头。但我不知道如何独立于事件相机打开/关闭闪光灯。 我的意思是:如果事件摄像头是前置摄像头,当我打开闪光灯时,它会卡住。当我关闭它时
我制作了一个手电筒应用程序,现在我想添加 sos 莫尔斯电码闪烁。这是我的代码,但它工作得不太好,它闪烁得太快,所以我需要某种延迟,任何人都可以帮忙吗? public void sos(View v)
我正在练习构建 Android 应用程序,并认为从手电筒开始是一个很好的初学者步骤。在我的代码多次崩溃后,我的应用程序变得稳定,不再强制关闭。 但是,LED 相机闪光灯并没有像我希望的那样打开。 任何
我想知道是否可以修改 iPhone 的拍照方式。具体来说,如果您可以关闭在全闪光之前显示的调光对焦闪光灯,那么当您拍照时,就会立即亮起全闪光灯。谢谢! 最佳答案 不幸的是,不,我认为不是。来自 app
我为我的应用创建了一个手电筒 fragment ,我已经实现了这段代码并打开了手电筒,但我无法将其关闭。 我尝试用一个按钮或像现在这样用两个按钮打开和关闭灯,但没有任何区别。 当我切换 fragm
我完全不知道如何实现它。它在我的 Razr 上工作正常,但在很多三星设备上都失败了。我有一个运行相机预览的 SurfaceView。我已经包含了一个按钮来使用手电筒。在我插入 try block 的地
我制作了一个 Flashlight 应用程序,并且使用了 Fragments。当我按下按钮时,灯笼灯延迟了超过 4 秒,我不知道发生了什么。另外,当我再次按下开关按钮时,手电筒不会关闭有什么想法吗?
我正在开发一个需要打开我的 Galaxy Nexus 设备手电筒的应用程序。我在这里提到了帖子 LED flashlight on Galaxy Nexus controllable by what
我一直在使用 Torch。我当前的程序需要导出一个包含简化特征矩阵的张量。 我尝试执行以下操作: torch.save('t.csv',torch.Tensor({{1,2},{3,4}}),'asc
我正在使用 libtorch C++。在 python 版本中,我们可以通过调用其 numpy 值轻松检查张量的值,而在 numpy 中,我们有 np.isnan()。我想知道 libtorch C+
我正在使用 libtorch C++。在 python 版本中,我们可以通过调用其 numpy 值轻松检查张量的值,而在 numpy 中,我们有 np.isnan()。我想知道 libtorch C+
我正在使用以下代码打开和关闭 LED 手电筒: public Flashlight(SurfaceView preview, Context context){ this.previe
我正在尝试开发一个应用程序,用于在点击切换按钮时打开手电筒。我尝试了我在网上找到的所有方法,但在我的 nexus 5 中没有成功。唯一可用的应用程序是 cyanogenmod torch,但即使我采用
是否可以使用 torch 实现连接同一层神经元的架构? 最佳答案 您所描述的称为递归神经网络。请注意,它需要完全不同类型的结构、输入数据和训练算法才能正常工作。 有 rnn用于处理循环神经网络的 To
我正在尝试注册 CameraManager.TorchCallback使用 CameraManager.registerTorchCallback进入特定线程(即:不同于 UI 线程)。 我的代码对于
我有一个使用此代码的手电筒/手电筒应用 开启 params = camera.getParameters(); params.setFlashMode(Parameters.FLASH
在卷积模块中,许多参数可能会改变输入的维度。有什么方法可以获取卷积模块或任何模块的输出维度? 我尝试查看 SpatialConvolution 中公开的方法,但没有人建议给我该信息。 此外,输出张量似
在 Adobe Air Android 中是否有控制移动 LED 手电筒的方法。 在 Flash CC 上使用 adobe air 14 最佳答案 您可以使用手电筒 ANE 或创建自己的手电筒。这
我是一名优秀的程序员,十分优秀!