gpt4 book ai didi

Android 相机(手电筒)API 太慢

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:53 26 4
gpt4 key购买 nike

我制作了一个 Flashlight 应用程序,并且使用了 Fragments。当我按下按钮时,灯笼灯延迟了超过 4 秒,我不知道发生了什么。另外,当我再次按下开关按钮时,手电筒不会关闭有什么想法吗?

我还想用另一个按钮做一个频闪灯笼。

我在互联网上搜索但没有找到其他选项来实现此功能,只有这个。

这是我的代码

import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Switch;

public class HerramientasFragment extends Fragment {

private Camera cam;
private Switch linterna;

public HerramientasFragment() {
// Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
cam = Camera.open();
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View masterView = inflater.inflate(R.layout.fragment_herramientas, container, false);
linterna = (Switch) masterView.findViewById(R.id.switch_linterna);
linterna.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Switch liternaSwitch = (Switch) v;

Parameters p;

if (liternaSwitch.isChecked()) {
p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
} else {
p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
cam.setParameters(p);
cam.stopPreview();
}

}
});

return masterView;
}

}

最佳答案

这 4 秒的延迟可能与硬件/操作系统相关并且不受您的控制。这并不是说它无法修复,但我找不到与之相关的任何内容(一些 Android 专家在这里可能有更好的主意)。

灯不熄灭可能是因为你需要添加cam.release();,如this answer所述.

至于频闪,我发现this tutorial .它似乎几乎正是您要找的东西。

关于Android 相机(手电筒)API 太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31758314/

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