设置->手机固定在支架上,无法旋转。摄像头正对着笔记本
MyCameraActivity -> 固定方向 -> 肖像
用户应该能够通过单击按钮来旋转预览,即我的预览应该旋转(例如,如果我在开头看到向上箭头,那么单击用户应该能够旋转右侧箭头)
我能够在camera2中执行此操作,但找不到有关cameraX的任何有用信息。
目前我正在使用这个gradle
implementation "androidx.camera:camera-camera2:1.0.0-beta11"
implementation "androidx.camera:camera-lifecycle:1.0.0-beta11"
implementation "androidx.camera:camera-view:1.0.0-alpha18"
Run Code Online (Sandbox Code Playgroud)
所以我想在用户点击按钮后以编程方式更改相机镜头的朝向。这是我尝试使用的代码
class CameraFragment : Fragment() {
private var cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
lateinit var mContext: Context
lateinit var mActivity: FragmentActivity
override fun onAttach(context: Context) {
super.onAttach(context)
mContext = context
activity?.let { mActivity = it }
}
private fun toggleFrontBackCamera() {
if (cameraSelector == CameraSelector.DEFAULT_BACK_CAMERA) {
cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA
} else if (cameraSelector == CameraSelector.DEFAULT_FRONT_CAMERA) {
cameraSelector == CameraSelector.DEFAULT_BACK_CAMERA
}
startCamera()
}
private fun startCamera() {
val cameraProviderFuture = ProcessCameraProvider.getInstance(mContext)
cameraProviderFuture.addListener(Runnable {
// Used to …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过动画实现效果,但只有在预览视图处于活动状态后才能实现。原因之一也是为了避免相机绑定后出现闪烁。
我已经设法使用反射 (androidx.camera.core.UseCase) 来做到这一点,但在某些设备上 onUseCaseActive 以奇怪的顺序被多次调用。它首先处于 ACTIVE 状态,然后切换到 INACTIVE,并被多次调用,最后进入 ACTIVE 状态。
所以我的实际问题是:有什么方法可以获取 CameraX 回调,以便我可以根据相机的状态以不同的方式管理我的状态?
我已经成功实现了 CameraX,但是,我仍停留在配置其设置上。我想设置自动白平衡、降噪、闪光和对焦模式(就像在 Camera2 中一样)。到目前为止,我在 SO 上发现的唯一内容仅涉及 Camera2,官方文档也没有告诉我太多信息。是否可以在 CameraX 上设置这些模式,或者到目前为止仅支持 Camera2?
我是 Andriod 的初学者,现在遇到了问题。
此处和此处描述了如何使用 CameraX 和 ZXing 创建 QR 码扫描仪。我正在尝试制作一个示例项目。
但我的代码有错误
private PreviewView previewView;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
previewView = findViewById(R.id.activity_main_previewView);
...
}
...
private void bindCameraPreview(@NonNull ProcessCameraProvider cameraProvider) {
previewView.setPreferredImplementationMode(PreviewView.ImplementationMode.SURFACE_VIEW);
...
}
Run Code Online (Sandbox Code Playgroud)
错误是“无法解析‘PreviewView’中的方法‘setPreferredImplementationMode’”。“PreviewView.ImplementationMode”中也没有“SURFACE_VIEW”。
请帮我解决这个问题。
Android Studio 4.1.2,Android 9 的项目。
我正在尝试集成CameraX到我的 flutter 应用程序中,但我收到错误消息Cannot access class 'com.google.common.util.concurrent.ListenableFuture'. Check your module classpath for missing or conflicting dependencies
错误来自下面一行
val cameraProviderFuture = ProcessCameraProvider.getInstance(context)
Run Code Online (Sandbox Code Playgroud)
下面是我的原生视图
class CealScanQrView(val context: Context, id: Int, creationParams: Map<String?, Any?>?) :
PlatformView {
private var mCameraProvider: ProcessCameraProvider? = null
private var preview: PreviewView
private var linearLayout: LinearLayout = LinearLayout(context)
private lateinit var cameraExecutor: ExecutorService
private lateinit var options: BarcodeScannerOptions
private lateinit var scanner: BarcodeScanner
private var analysisUseCase: ImageAnalysis = ImageAnalysis.Builder()
.build()
companion object {
private val REQUIRED_PERMISSIONS …Run Code Online (Sandbox Code Playgroud) 没有找到设置的任何例子Camera2Config或Camera2Config.Extender到CameraX。
您能否提供一个将这些对象设置为CameraX的示例,以便例如获取回调方法调用。
基本上我想以androidx.camera.camera2.impl.Camera.State的格式获取相机的状态。
当使用camerax_version =“1.0.0-alpha06”时,我可以使用以下命令实例化相机控制器:
CameraControl cameraControl = CameraX.getCameraControl(CameraX.LensFacing.BACK);
Run Code Online (Sandbox Code Playgroud)
但当camerax_version =“1.0.0-alpha07”时,该功能CameraX.getCameraControl不再被识别。
如何实例化 CameraControl ?
我收到以下错误:
java.lang.IllegalArgumentException: 找不到可用的相机。
当调用和实例方法 ProcessCameraProvider.bindToLifecycle() 时。通过搜索“------ Code Crashes Here --------------”在下面的代码上下文中看到这一点。
如何防止此错误和随后的应用程序崩溃?更具体地说,我如何确保 CameraSelector 可以返回 Nexus 6 的相机实例?
此调用中使用的 CameraSelector 似乎有问题。如果我在 bindToLifecycle 行上设置一个断点,并调试到该点并为`cameraProvider.hasCamera(cameraSelector) 添加一个监视,它将返回 false。也许这不会在调用 bindToLifecycle 方法之前返回 true。如果是这样,我如何验证 cameraSelector 对象已成功创建(成功意味着它指向实际的相机对象)?
在创建 cameraSelector 对象时,我在构建器中使用了requireLensFacing方法,所以看起来 Nexus 6 硬件没有用这些 LENS_FACING_BACK 或 LENS_FACING_FRONT 标记任何东西,因此不返回任何相机实例?我理解正确吗?
我应该注意,当在 Nexus 5 上运行完全相同的代码时不会发生此错误,这就是为什么我倾向于认为这是一个硬件问题。
我也试过 LENS_FACING_FRONT int,但有同样的错误。如果我完全删除 requireLensFacing 构建组件,则会收到不同的错误:
java.util.NoSuchElementException
package jp.oist.cameraxapp;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.camera.core.Camera;
import androidx.camera.core.CameraSelector;
import androidx.camera.core.ImageAnalysis;
import androidx.camera.core.ImageCapture;
import androidx.camera.core.ImageProxy;
import androidx.camera.core.Preview;
import androidx.camera.lifecycle.ProcessCameraProvider;
import androidx.camera.view.PreviewView;
import androidx.core.content.ContextCompat; …Run Code Online (Sandbox Code Playgroud) 我还是 android 编程的新手。我正在尝试使用 CameraX API 拍照。但是,Google Codelabs的示例代码仅将照片保存在符合Android 的 Scoped Storage的应用程序私有目录中。我对 Mediastore 还不了解,所以请您带我查看有关如何将 Mediastore 集成到 CameraX 的文档吗?
android ×10
android-camerax ×10
java ×2
dart ×1
flutter ×1
kotlin ×1
mediastore ×1
nexus6 ×1
qr-code ×1