Camera QX1,通过API的手动射击模式(M)

Camera QX1,通过API的手动射击模式(M),camera,sony,sony-camera-api,Camera,Sony,Sony Camera Api,非常需要QX1上的M(手动)曝光模式。我在寻找我的问题的答案,但没有找到确切的答案。我可以通过API在QX1上选择全手动曝光模式吗?您似乎可以。根据表,您可以在QX1上设置曝光模式。您可以将setExposureModeAPI方法与以下JSON类似的内容一起使用: { "method": "setExposureMode", "params": ["Manual"], "id": 1, "version": "1.0" } 资料来源: API参考下载自您是否尝试

非常需要QX1上的M(手动)曝光模式。我在寻找我的问题的答案,但没有找到确切的答案。我可以通过API在QX1上选择全手动曝光模式吗?

您似乎可以。根据表,您可以在QX1上设置曝光模式。您可以将
setExposureMode
API方法与以下JSON类似的内容一起使用:

{
    "method": "setExposureMode",
    "params": ["Manual"],
    "id": 1,
    "version": "1.0"
}
资料来源:


API参考下载自

您是否尝试了以下内容:

以下是对该黑客的其他参考: 我不能让它工作,但如果它能在任何方面帮助你的研究

public String getDG() throws IOException {
    String service = "accessControl";
    try {
        JSONObject paramsMethods =
                new JSONObject().put("developerName","");
        paramsMethods.put("sg","");
        paramsMethods.put("methods","");
       paramsMethods.put("developerID","");

        JSONObject requestJson =
                new JSONObject().put("method", "actEnableMethods") //
                        .put("params", new JSONArray().put(paramsMethods)) //
                        .put("id", id()).put("version", "1.0");

        String url = findActionListUrl(service) + "/" + service;

        log("Request:  " + requestJson.toString());
        String responseJson = SimpleHttpClient.httpPost(url, requestJson.toString());
        log("Response: " + responseJson);
        JSONArray resultsObj = new JSONObject(responseJson).getJSONArray("result");

        String dg = null;
        JSONObject dgobj = resultsObj.getJSONObject(0);
        dg = dgobj.getString("dg");


        return dg;

    } catch (JSONException e) {
        throw new IOException(e);
    }

}

public String getSG(String dg){
    MessageDigest md;
    String keydg = "90adc8515a40558968fe8318b5b023fdd48d3828a2dda8905f3b93a3cd8e58dc" + dg;
    try {
        md = MessageDigest.getInstance("SHA-256");
        md.update(keydg.getBytes());
        String SG = new String(Base64.encode(md.digest(), 0));

        return SG;
    }catch(Exception e){

    }
    return null;
}

public JSONObject actEnableMethods() throws IOException {
    String DG = getDG();
    String SG = getSG(DG);
    String service = "accessControl";
    try {
    JSONObject paramsMethods =
    new JSONObject().put("developerName","Sony Corporation");
    paramsMethods.put("sg",SG);
    paramsMethods.put("methods","camera/setFlashMode:camera/getFlashMode:camera/getSupportedFlashMode:camera/getAvailableFlashMode:camera/setExposureCompensation:camera/getExposureCompensation:camera/getSupportedExposureCompensation:camera/getAvailableExposureCompensation:camera/setSteadyMode:camera/getSteadyMode:camera/getSupportedSteadyMode:camera/getAvailableSteadyMode:camera/setViewAngle:camera/getViewAngle:camera/getSupportedViewAngle:camera/getAvailableViewAngle:camera/setMovieQuality:camera/getMovieQuality:camera/getSupportedMovieQuality:camera/getAvailableMovieQuality:camera/setFocusMode:camera/getFocusMode:camera/getSupportedFocusMode:camera/getAvailableFocusMode:camera/setStillSize:camera/getStillSize:camera/getSupportedStillSize:camera/getAvailableStillSize:camera/setBeepMode:camera/getBeepMode:camera/getSupportedBeepMode:camera/getAvailableBeepMode:camera/setCameraFunction:camera/getCameraFunction:camera/getSupportedCameraFunction:camera/getAvailableCameraFunction:camera/setLiveviewSize:camera/getLiveviewSize:camera/getSupportedLiveviewSize:camera/getAvailableLiveviewSize:camera/setTouchAFPosition:camera/getTouchAFPosition:camera/cancelTouchAFPosition:camera/setFNumber:camera/getFNumber:camera/getSupportedFNumber:camera/getAvailableFNumber:camera/setShutterSpeed:camera/getShutterSpeed:camera/getSupportedShutterSpeed:camera/getAvailableShutterSpeed:camera/setIsoSpeedRate:camera/getIsoSpeedRate:camera/getSupportedIsoSpeedRate:camera/getAvailableIsoSpeedRate:camera/setExposureMode:camera/getExposureMode:camera/getSupportedExposureMode:camera/getAvailableExposureMode:camera/setWhiteBalance:camera/getWhiteBalance:camera/getSupportedWhiteBalance:camera/getAvailableWhiteBalance:camera/setProgramShift:camera/getSupportedProgramShift:camera/getStorageInformation:camera/startLiveviewWithSize:camera/startIntervalStillRec:camera/stopIntervalStillRec:camera/actFormatStorage:system/setCurrentTime");
    paramsMethods.put("developerID","7DED695E-75AC-4ea9-8A85-E5F8CA0AF2F3");

        JSONObject requestJson =
                new JSONObject().put("method", "actEnableMethods") //
                        .put("params", new JSONArray().put(paramsMethods)) //
                        .put("id", id()).put("version", "1.0");
        String url = findActionListUrl(service) + "/" + service;

        log("Request:  " + requestJson.toString());
        String responseJson = SimpleHttpClient.httpPost(url, requestJson.toString());
        log("Response: " + responseJson);
        return new JSONObject(responseJson);
    } catch (JSONException e) {
        throw new IOException(e);
    }
}

不,您无法使用QX1摄像头上的当前固件设置手动模式

您应该使用getAvailableExposureModegetSupportedExposureModeAPI方法来检索支持的模式(并可选地向用户显示),然后在设置ExposureMode中仅使用其中一种模式

但是QX1摄像头不支持手动模式,因此getSupported/Available方法不会返回手动模式,这就是API将错误返回给调用的原因

该API旨在支持几种具有多种不同功能的索尼相机。对于每个属性,您都有以下API方法:

  • getSupportedProperty->返回相机支持的属性值
  • getProperty->返回属性的实际值
  • setProperty->允许为属性设置新值
  • getAvailableProperty->返回当前值和支持的值
这样,如果应用程序编码良好,它将支持所有摄像头

所以,这不是API问题,而是固件问题。QX1的当前固件不支持手动模式

还没有官方固件更新:(


这个问题似乎离题了,因为它是关于相机上的手动拍摄模式,与编程无关。我想他说的是通过编程API设置拍摄模式。对不起,我指的是曝光模式。我发送JSON“getSupportedExposureMode”和QX1回答我“智能自动”、“光圈”、“快门”但没有手动模式,这对我来说是非常必要的。索尼PlayMemories软件也没有为我提供手动曝光模式。可能这个选项在固件中被禁用了。也许你应该尝试发送“手动”在
setExposureMode
上。文档表明不应该有问题,因此可能您的固件已过期?我尝试将setExposureMode设置为“手动”,但不起作用。发送JSON setExposureMode后,我收到一个错误:“error”=>[500,“设置操作失败”。]即使通过API也不要在ILCE-QX1上设置手动曝光模式。我希望在固件更新中修复它。真的需要此模式。谢谢。我认为这表明目前QX1是一个几乎无用的玩具。没有手动模式,就无法拍摄有用的天空照片。我已取消订单。