diff --git a/app/src/main/cpp/node_bridge_sources.cpp b/app/src/main/cpp/node_bridge_sources.cpp index cd8c334..9b0ee39 100644 --- a/app/src/main/cpp/node_bridge_sources.cpp +++ b/app/src/main/cpp/node_bridge_sources.cpp @@ -25524,12 +25524,21 @@ std::string buildEmbeddedScriptExecutionSource( return value === undefined || value === null ? "" : String(value); }); } + function capabilities(options) { + return __autojs6_call_autojs( + "mediainfo", + "capabilities", + [], + __autojs6_media_bridge_options("mediainfo", "capabilities", options, 5000) + ).then(__autojs6_media_freeze_record); + } const facade = function(path, options) { return read(path, options); }; Object.defineProperties(facade, { read: { value: read, enumerable: true }, - get: { value: get, enumerable: true } + get: { value: get, enumerable: true }, + capabilities: { value: capabilities, enumerable: true } }); __autojs6_limited_mediainfo_cache = Object.freeze(facade); return __autojs6_limited_mediainfo_cache; diff --git a/sample/nodejs/pro-parity-suite/snippets/media-recorder.cjs b/sample/nodejs/pro-parity-suite/snippets/media-recorder.cjs index eed82ba..d9cd81e 100644 --- a/sample/nodejs/pro-parity-suite/snippets/media-recorder.cjs +++ b/sample/nodejs/pro-parity-suite/snippets/media-recorder.cjs @@ -15,8 +15,16 @@ function codeOf(error) { try { const mediainfo = require("mediainfo"); - const snapshot = await mediainfo.read("sample.mp3", { includeInform: false, timeoutMs: 1000 }); - console.log("sample.pro-parity-suite.media-recorder.mediainfo=" + snapshot.fileName); + const capabilities = await mediainfo.capabilities({ timeoutMs: 1000 }); + const v2 = "autojs6-plugin-mediainfo-snapshot-v2"; + const supportsV2 = capabilities.snapshotSchemas.includes(v2); + const snapshot = await mediainfo.read("sample.mp3", { + ...(supportsV2 ? { schema: v2 } : {}), + includeInform: false, + timeoutMs: 1000 + }); + const fileName = snapshot.schema === v2 ? snapshot.file.name : snapshot.fileName; + console.log("sample.pro-parity-suite.media-recorder.mediainfo=" + fileName); } catch (error) { console.log("sample.pro-parity-suite.media-recorder.skipped=mediainfo:" + codeOf(error)); }