You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Xamarin中CameraCharacteristics.Get(ControlAeAvailableTargetFpsRanges)返回类型咨询

Xamarin .NET中Camera2的CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES返回类型问题

在Xamarin .NET的Camera2 API中,CameraCharacteristics.Get(CameraCharacteristics.ControlAeAvailableTargetFpsRanges)的等效返回类型是Android.Util.Range<Java.Lang.Integer>[],但不能直接通过强制类型转换获取,需要借助Xamarin提供的JavaCast<T>()扩展方法来完成类型转换,否则会触发运行时错误。

正确的调用代码示例:

// 获取支持的FPS范围数组
var fpsRanges = CameraCharacteristics.Get(CameraCharacteristics.ControlAeAvailableTargetFpsRanges)
    ?.JavaCast<Android.Util.Range<Java.Lang.Integer>[]>();

// 遍历并转换为.NET原生int类型使用
if (fpsRanges != null)
{
    foreach (var range in fpsRanges)
    {
        int minFps = range.Lower.IntValue();
        int maxFps = range.Upper.IntValue();
    }
}

关键说明:

  • Java中的Range<Integer>对应Xamarin中的Android.Util.Range<Java.Lang.Integer>,这里必须使用Java.Lang.Integer而非.NET原生int,因为Xamarin绑定的Java API保留了原有的Java类型体系。
  • 直接强制转换(如(Android.Util.Range<Java.Lang.Integer>[]))会因Java泛型类型擦除的机制导致运行时类型不匹配错误,JavaCast<T>()方法专门用于处理这类跨JVM与.NET的类型转换问题。

内容的提问来源于stack exchange,提问作者user11500484

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:14:55