2

QX1のM(マニュアル)露出モードが非常に必要です。私の質問に対する答えを探していましたが、正確な答えが見つかりませんでした。API 経由で QX1 のフル マニュアル露出モードを選択できますか?

4

3 に答える 3

2

いいえ、QX1 カメラの現在のファームウェアで手動モードを設定することはできません。

getAvailableExposureModeまたはgetSupportedExposureMode API メソッドを使用して、サポートされているモードを取得し (オプションでそれらをユーザーに表示し)、setExposureModeでこれらのモードのいずれかを使用する必要があります。

ただし、手動モードは QX1 カメラではサポートされていないため、getSupported/Available メソッドによって返されず、API がsetExposureMode呼び出しにエラーを返すのはそのためです。

この API は、いくつかの異なる機能を備えた複数の SONY カメラをサポートすることを目的としています。プロパティごとに、次の API メソッドがあります。

  • getSupportedProperty -> カメラがサポートするプロパティ値を返します。
  • getProperty -> プロパティの実際の値を返します
  • setProperty -> プロパティの新しい値を設定できます
  • getAvailableProperty -> 現在の値とサポートされている値を返します。

そうすれば、アプリが適切にコーディングされていれば、すべてのカメラがサポートされます。

つまり、これは API の問題ではなく、ファームウェアの問題です。QX1 の現在のファームウェアは手動モードをサポートしていません。

まだ公式のファームウェアアップデートはありません:(

https://esupport.sony.com/US/p/model-home.pl?mdl=ILCEQX1&LOC=3#/downloadTab

于 2015-04-01T10:46:30.007 に答える
1

ここでこれを試しましたか: https://github.com/erik-smit/sony-camera-api/blob/master/actEnableMethods.sh

このハックへの他の参照はこちら:http://chdk.setepontos.com/index.php?topic=10736.10 私はそれを動作させることができませんでしたが、何らかの形であなたの研究に役立つなら

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);
    }
}
于 2015-02-15T18:15:40.957 に答える
0

できるようです。こちらの表に従って、QX1 の露出モードを設定できます。setExposureMode次の JSON のようなもので API メソッドを使用できます。

{
    "method": "setExposureMode",
    "params": ["Manual"],
    "id": 1,
    "version": "1.0"
}

ソース:

https://developer.sony.com/develop/cameras/get-started/からダウンロードした API リファレンス

于 2014-12-15T18:56:56.270 に答える