{ "schemaVersion": 1, "task": "PKG-ASR-09", "capturedAt": "2026-09-13T08:19:08.736Z", "baseCommit": "5ab7da6e1f891c5f674033cea38845bae8acb0e8", "addition": "Optional audioInput: { type: capture } uses native stream capture without any direct media binding or audible ASR route. Runtime types only; historical option and factory declarations unchanged.", "correction": "An epoch captured after stopping invalidates delayed source restart when later pause/stop/restart/destroy supersedes it.", "versionChanged": false, "dependenciesAdded": [], "red": { "initialStrategy": { "passed": 2, "failed": 9 }, "delayedRestart": { "passed": 11, "failed": 2 } }, "browsers": [ { "mode": "source", "file": "refactor/.cache/asr09-browser-source/report.json", "sha256": "c5d966d8c6b56ed5ea0d13240dba33431a3a50eec55f831c268c133b2602ed0a", "passed": 10, "skipped": 5, "rows": [ { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "core": "published", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "plugin": "workspace source", "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } } ], "directBindings": 0, "contexts": [ "closed" ], "streams": [], "retainedTracks": [], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [ "[artplayerPluginAsr] Initialization failed: SecurityError: Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data\n at prototype. [as captureStream] (eval at evaluate (:311:30), :29:40)\n at AudioGraph.initialize (:69:33)\n at async :270:9" ], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] }, { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4215, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4237, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4251, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "core": "candidate", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "plugin": "workspace source", "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } } ], "directBindings": 0, "contexts": [ "closed" ], "streams": [], "retainedTracks": [], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [ "[artplayerPluginAsr] Initialization failed: SecurityError: Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data\n at prototype. [as captureStream] (eval at evaluate (:311:30), :29:40)\n at AudioGraph.initialize (:69:33)\n at async :270:9" ], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] }, { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4168, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4237, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4251, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "core": "published", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "plugin": "workspace source", "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null } ], "directBindings": 0, "contexts": [ "running" ], "streams": [ { "active": true, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [] }, { "active": false, "tracks": [] }, { "active": false, "tracks": [] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": true, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4251, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4219, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4248, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "core": "candidate", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "plugin": "workspace source", "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null } ], "directBindings": 0, "contexts": [ "running" ], "streams": [ { "active": true, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [] }, { "active": false, "tracks": [] }, { "active": false, "tracks": [] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": true, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4213, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4245, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4190, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "core": "published", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "plugin": "workspace source", "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks AudioContext/AudioWorklet; this is not Safari/device CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-capture-cors.spec.js", "line": 41, "column": 12 } } ] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "core": "candidate", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "plugin": "workspace source", "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks AudioContext/AudioWorklet; this is not Safari/device CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-capture-cors.spec.js", "line": 41, "column": 12 } } ] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.08772112125105311, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.0889365128761472, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08762481388661633, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08862216379888067, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08779609911638686, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4238, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.0889365128761472, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.0880712446666184, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08866202715264984, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.0880712446666184, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08774571319741767, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08789785569817585, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08789785569817585, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "f5fcf901c7e8c197f72d44ed6d7e4445cbad0c6ce2258d9127a765712d75b010", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] } ] }, { "mode": "main", "file": "refactor/.cache/asr09-browser-main/report.json", "sha256": "c40bb98d35186aa807e8e8a652f5d583d86c339a3cec00005ec342ba80f13938", "passed": 48, "skipped": 24, "rows": [ { "title": "published core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": true }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "published core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": true }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "published core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": true }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "published core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": true }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "published core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": true }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "published core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "candidate core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": true }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "candidate core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "ASR candidate + published-5.3.0: native Worklet supplies local PCM with owned stop and destroy", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native Worklet supplies local PCM with owned stop and destroy", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native Worklet supplies local PCM with owned stop and destroy", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native Worklet supplies local PCM with owned stop and destroy", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native Worklet supplies local PCM with owned stop and destroy", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native Worklet supplies local PCM with owned stop and destroy", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native Worklet supplies local PCM with owned stop and destroy", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [ { "type": "skip", "description": "Windows WebKit 26.6 has no AudioContext/AudioWorkletNode; native ASR acceptance remains open", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio.spec.js", "line": 30, "column": 14 } } ] }, { "title": "ASR candidate + published: native Worklet supplies local PCM with owned stop and destroy", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit 26.6 has no AudioContext/AudioWorkletNode; native ASR acceptance remains open", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio.spec.js", "line": 30, "column": 14 } } ] }, { "title": "ASR candidate + candidate: native Worklet supplies local PCM with owned stop and destroy", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit 26.6 has no AudioContext/AudioWorkletNode; native ASR acceptance remains open", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio.spec.js", "line": 30, "column": 14 } } ] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "core": "published", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } } ], "directBindings": 0, "contexts": [ "closed" ], "streams": [], "retainedTracks": [], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [ "[artplayerPluginAsr] Initialization failed: SecurityError: Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data\n at prototype. [as captureStream] (eval at evaluate (:311:30), :29:40)\n at t.initialize (:7:1749)\n at async :7:4905" ], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] }, { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4168, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4237, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4251, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "core": "candidate", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } } ], "directBindings": 0, "contexts": [ "closed" ], "streams": [], "retainedTracks": [], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [ "[artplayerPluginAsr] Initialization failed: SecurityError: Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data\n at prototype. [as captureStream] (eval at evaluate (:311:30), :29:40)\n at t.initialize (:7:1749)\n at async :7:4905" ], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] }, { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4249, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4224, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4179, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "core": "published", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null } ], "directBindings": 0, "contexts": [ "running" ], "streams": [ { "active": true, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [] }, { "active": false, "tracks": [] }, { "active": false, "tracks": [] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": true, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4242, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4184, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4247, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "core": "candidate", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null } ], "directBindings": 0, "contexts": [ "running" ], "streams": [ { "active": true, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [] }, { "active": false, "tracks": [] }, { "active": false, "tracks": [] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": true, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4219, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4248, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4183, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "core": "published", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks AudioContext/AudioWorklet; this is not Safari/device CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-capture-cors.spec.js", "line": 41, "column": 12 } } ] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "core": "candidate", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks AudioContext/AudioWorklet; this is not Safari/device CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-capture-cors.spec.js", "line": 41, "column": 12 } } ] }, { "title": "ASR candidate + published: anonymous-cors native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "scenario": "anonymous-cors", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0.12774023413658142, "chunks": [ { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4250, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4248, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.913627, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12964209914207458, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.392, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" } ], "time": 0.906667, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12964209914207458, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.384, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque-redirect native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque-redirect", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" } ], "time": 0.886667, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12964209914207458, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.392, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: anonymous-cors native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "scenario": "anonymous-cors", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0.1273600161075592, "chunks": [ { "max": 4260, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4190, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.892382, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12964209914207458, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.384, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" } ], "time": 0.886667, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12970227003097534, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.376, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque-redirect native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque-redirect", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" } ], "time": 0.874667, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12970227003097534, "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.373421, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: anonymous-cors native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "scenario": "anonymous-cors", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0.12736152112483978, "chunks": [ { "max": 4190, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4248, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.868833, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.368, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 1.968, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.368, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque-redirect native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque-redirect", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 1.984, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.368, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: anonymous-cors native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "scenario": "anonymous-cors", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0.12966568768024445, "chunks": [ { "max": 4190, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4248, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.82902, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.4, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 2.011666, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12976472079753876, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.36, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque-redirect native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque-redirect", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 1.984, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.368, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: anonymous-cors native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + published: opaque native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + published: opaque-redirect native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + candidate: anonymous-cors native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + candidate: opaque native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + candidate: opaque-redirect native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + published-5.3.0: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.08779609911638686, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 } }, "restart": { "external": 0.0889365128761472, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4158, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4250, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + published: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08779609911638686, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4305, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 } }, "restart": { "external": 0.08862216379888067, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4299, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + candidate: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08772112125105311, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 } }, "restart": { "external": 0.08862216379888067, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.08759580548385439, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.0889365128761472, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08759580548385439, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08869046588295236, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4211, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08762481388661633, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08869046588295236, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": true, "reason": "Firefox permits a second native media source; force only binding rejection to reach real captureStream/Worklet", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.08791119445452536, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 } }, "restart": { "external": 0.08789785569817585, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + published: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": true, "reason": "Firefox permits a second native media source; force only binding rejection to reach real captureStream/Worklet", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08778351516353888, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 } }, "restart": { "external": 0.08791736763772941, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + candidate: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": true, "reason": "Firefox permits a second native media source; force only binding rejection to reach real captureStream/Worklet", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08906111312585639, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 } }, "restart": { "external": 0.08895963860169126, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.08895963860169126, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08866202715264984, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08808024336011813, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08789785569817585, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08830393306342403, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08778351516353888, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate + published: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate + candidate: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": false, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate + published-5.3.0: native playback volume and mute", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native playback volume and mute", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native playback volume and mute", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native playback volume and mute", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native playback volume and mute", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native playback volume and mute", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native playback volume and mute", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorkletNode", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-playback.spec.js", "line": 24, "column": 14 } } ] }, { "title": "ASR candidate + published: native playback volume and mute", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorkletNode", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-playback.spec.js", "line": 24, "column": 14 } } ] }, { "title": "ASR candidate + candidate: native playback volume and mute", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorkletNode", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-playback.spec.js", "line": 24, "column": 14 } } ] } ] }, { "mode": "legacy", "file": "refactor/.cache/asr09-browser-legacy/report.json", "sha256": "78282539f961f4364be29145d9c7fb3178bfdf310c7e892da47c9a6d1ac91c38", "passed": 48, "skipped": 24, "rows": [ { "title": "published core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": true }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "published core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": true }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "published core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": true }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "published core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": true }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "candidate core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "published core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": true }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "published core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "published", "audioFirst": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "candidate core + ASR/audio-track: pause, update, ASR stop and destroy preserve separate ownership", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": true }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "candidate core + ASR/audio-track: capture follows main media, not the independent audible track", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "asr": { "input": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697" }, "audioTrack": { "input": "workspace source", "sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713" }, "media": { "file": "test/browser/media/audio-tone.m4a", "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "recognitionService": false, "scope": "Native media/WebAudio composition; not physical speaker, device, or isolated package acceptance", "core": "candidate", "audioFirst": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorklet; Safari and physical-device composition remain unverified", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio-track.spec.js", "line": 35, "column": 10 } } ] }, { "title": "ASR candidate + published-5.3.0: native Worklet supplies local PCM with owned stop and destroy", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native Worklet supplies local PCM with owned stop and destroy", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native Worklet supplies local PCM with owned stop and destroy", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native Worklet supplies local PCM with owned stop and destroy", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native Worklet supplies local PCM with owned stop and destroy", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native Worklet supplies local PCM with owned stop and destroy", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native Worklet supplies local PCM with owned stop and destroy", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [ { "type": "skip", "description": "Windows WebKit 26.6 has no AudioContext/AudioWorkletNode; native ASR acceptance remains open", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio.spec.js", "line": 30, "column": 14 } } ] }, { "title": "ASR candidate + published: native Worklet supplies local PCM with owned stop and destroy", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit 26.6 has no AudioContext/AudioWorkletNode; native ASR acceptance remains open", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio.spec.js", "line": 30, "column": 14 } } ] }, { "title": "ASR candidate + candidate: native Worklet supplies local PCM with owned stop and destroy", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "integrity": null, "candidate": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "media": "local mono AAC 440 Hz tone", "networkService": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit 26.6 has no AudioContext/AudioWorkletNode; native ASR acceptance remains open", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-audio.spec.js", "line": 30, "column": 14 } } ] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "core": "published", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } } ], "directBindings": 0, "contexts": [ "closed" ], "streams": [], "retainedTracks": [], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [ "[artplayerPluginAsr] Initialization failed: SecurityError: Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data\n at prototype. [as captureStream] (eval at evaluate (:311:30), :29:40)\n at e. (:7:1996)\n at Generator.next ()\n at r (:7:364)" ], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] }, { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4241, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4215, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4237, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "core": "candidate", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } } ], "directBindings": 0, "contexts": [ "closed" ], "streams": [], "retainedTracks": [], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [ "[artplayerPluginAsr] Initialization failed: SecurityError: Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data\n at prototype. [as captureStream] (eval at evaluate (:311:30), :29:40)\n at e. (:7:1996)\n at Generator.next ()\n at r (:7:364)" ], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": { "name": "SecurityError", "message": "Failed to execute 'captureStream' on 'HTMLMediaElement': Cannot capture from element with cross-origin data" } }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] }, { "active": false, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4154, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4202, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4251, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "core": "published", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null } ], "directBindings": 0, "contexts": [ "running" ], "streams": [ { "active": true, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [] }, { "active": false, "tracks": [] }, { "active": false, "tracks": [] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": true, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4256, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4221, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4213, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "core": "candidate", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "opaque": { "opaque": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null } ], "directBindings": 0, "contexts": [ "running" ], "streams": [ { "active": true, "tracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "live" } ], "chunks": [] }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "status": 206, "allowOrigin": null } ], "consoleErrors": [], "properties": { "src": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "crossOrigin": null, "crossOriginAttribute": null, "muted": false, "defaultMuted": false, "volume": 0.6, "playbackRate": 1, "autoplay": false, "controls": false, "loop": false, "preload": "metadata", "playsInline": true }, "clockAdvanced": true }, "explicitFinal": { "attempts": [ { "source": "http://localhost:8084/test/audio-tone.m4a?capture-cors=opaque", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "error": null } ], "directBindings": 0, "contexts": [ "closed", "closed", "closed" ], "streams": [ { "active": false, "tracks": [] }, { "active": false, "tracks": [] }, { "active": false, "tracks": [] } ], "retainedTracks": [ { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": true, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" }, { "kind": "audio", "muted": false, "enabled": true, "readyState": "ended" } ], "chunks": [ { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4304, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4204, "pcmBytes": 3200, "wavBytes": 3244 }, { "source": "http://127.0.0.1:8084/test/audio-tone.m4a?capture-cors=recovery", "peak": 4238, "pcmBytes": 3200, "wavBytes": 3244 } ] }, "annotations": [] }, { "title": "ASR explicit capture + published: opaque media keeps native routing and same-origin capture recovers", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "core": "published", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks AudioContext/AudioWorklet; this is not Safari/device CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-capture-cors.spec.js", "line": 41, "column": 12 } } ] }, { "title": "ASR explicit capture + candidate: opaque media keeps native routing and same-origin capture recovers", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "core": "candidate", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "plugin": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "nativeCapture": true, "forcedException": false, "analyserBinding": false, "physicalAudioOutput": false, "scope": "Zero direct bindings and native media clock progression preserve routing; no claim about physical speaker output" }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit lacks AudioContext/AudioWorklet; this is not Safari/device CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-capture-cors.spec.js", "line": 41, "column": 12 } } ] }, { "title": "ASR candidate + published: anonymous-cors native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "scenario": "anonymous-cors", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0.1273600161075592, "chunks": [ { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4250, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4248, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.904151, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12970227003097534, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.376, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" } ], "time": 0.914667, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12964209914207458, "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.384, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque-redirect native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque-redirect", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" } ], "time": 0.902278, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12970227003097534, "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.374666, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: anonymous-cors native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "scenario": "anonymous-cors", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0.1273600161075592, "chunks": [ { "max": 4260, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4190, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.89359, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12964209914207458, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.390899, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" }, { "max": 0, "source": "http://localhost:8084/test/audio-tone.m4a" } ], "time": 0.866667, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12970227003097534, "chunks": [ { "max": 4290, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.376, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque-redirect native audio access and source recovery", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque-redirect", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [ { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" }, { "max": 0, "source": "http://127.0.0.1:8084/test/asr-opaque-redirect" } ], "time": 0.913871, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12964209914207458, "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.392, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: anonymous-cors native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "scenario": "anonymous-cors", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0.12966568768024445, "chunks": [ { "max": 4190, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4248, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.848, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.368, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 1.006958, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.376, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: opaque-redirect native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "scenario": "opaque-redirect", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 1.976, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.376, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: anonymous-cors native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "scenario": "anonymous-cors", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0.12966568768024445, "chunks": [ { "max": 4190, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4255, "source": "http://localhost:8084/test/asr-cors.m4a" }, { "max": 4248, "source": "http://localhost:8084/test/asr-cors.m4a" } ], "time": 0.808, "paused": false, "error": null, "crossOrigin": "anonymous" }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.36, "paused": false, "error": null, "crossOrigin": "anonymous" }, "responses": [ { "url": "http://localhost:8084/test/asr-cors.m4a", "status": 206, "allowOrigin": "*" }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 1.972333, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.368, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + candidate: opaque-redirect native audio access and source recovery", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "scenario": "opaque-redirect", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "physicalAudioOutput": false, "securityBypass": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "cors": { "initial": { "outputMax": 0, "chunks": [], "time": 2.001979, "paused": false, "error": null, "crossOrigin": null }, "recovery": { "outputMax": 0.12957505881786346, "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery" } ], "time": 0.376, "paused": false, "error": null, "crossOrigin": null }, "responses": [ { "url": "http://127.0.0.1:8084/test/asr-opaque-redirect", "status": 302, "allowOrigin": null }, { "url": "http://localhost:8084/test/audio-tone.m4a", "status": 206, "allowOrigin": null }, { "url": "http://127.0.0.1:8084/test/audio-tone.m4a?asr-cors=recovery", "status": 206, "allowOrigin": null } ] }, "annotations": [] }, { "title": "ASR candidate + published: anonymous-cors native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + published: opaque native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + published: opaque-redirect native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + candidate: anonymous-cors native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + candidate: opaque native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + candidate: opaque-redirect native audio access and source recovery", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native WebAudio; this is not Safari CORS acceptance", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-cors.spec.js", "line": 26, "column": 16 } } ] }, { "title": "ASR candidate + published-5.3.0: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.08916705692979744, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4233, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4393, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 } }, "restart": { "external": 0.08869046588295236, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4312, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + published: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08864518732424151, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4310, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 } }, "restart": { "external": 0.08869046588295236, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4247, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + candidate: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08759580548385439, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 1 } }, "restart": { "external": 0.08862216379888067, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4245, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." }, { "name": "InvalidStateError", "message": "Failed to execute 'createMediaElementSource' on 'AudioContext': HTMLMediaElement already connected previously to a different MediaElementSourceNode." } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.08916705692979744, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4233, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08896275868833134, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4250, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08759580548385439, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08869046588295236, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4251, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08876977731692302, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4157, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08862216379888067, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4192, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4263, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4250, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": true, "reason": "Firefox permits a second native media source; force only binding rejection to reach real captureStream/Worklet", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.0880712446666184, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 } }, "restart": { "external": 0.08866202715264984, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + published: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": true, "reason": "Firefox permits a second native media source; force only binding rejection to reach real captureStream/Worklet", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08830393306342403, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 } }, "restart": { "external": 0.08866202715264984, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate + candidate: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": true, "reason": "Firefox permits a second native media source; force only binding rejection to reach real captureStream/Worklet", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08791119445452536, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4272, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4280, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4264, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 1 } }, "restart": { "external": 0.08895963860169126, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [ { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" }, { "name": "InvalidStateError", "message": "Controlled duplicate binding rejection for native capture test" } ], "directCalls": 3 }, "annotations": [] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "fallback": { "playing": { "external": 0.0883604767030335, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4215, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4253, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08895963860169126, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4187, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "fallback": { "playing": { "external": 0.08866202715264984, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4183, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08789785569817585, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4260, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "function", "worklet": "function", "capture": "function", "mozCapture": "function" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "fallback": { "playing": { "external": 0.08866202715264984, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4303, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4252, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "muted": { "external": 0, "asr": [ 0 ], "contexts": [ "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a", "samples": 1600 } ], "failures": [], "directCalls": 0 } }, "restart": { "external": 0.08774571319741767, "asr": [ 0, 0, 0 ], "contexts": [ "closed", "closed", "running" ], "owner": "running", "streams": [ [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "ended" } ], [ { "kind": "audio", "state": "live" } ] ], "chunks": [ { "max": 4190, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4255, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 }, { "max": 4248, "source": "http://127.0.0.1:8084/test/audio-tone.m4a?asr=fallback-second", "samples": 1600 } ], "failures": [], "directCalls": 0 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate + published: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate + candidate: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": false, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Native duplicate binding rejection", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + published-5.3.0: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published-5.3.0", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + published: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "published", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate capture + candidate: native capture fallback does not create a second audible route", "project": "webkit", "status": "skipped", "browser": "26.6", "inputs": { "version": "candidate", "core": "candidate", "captureOnly": true, "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "capabilities": { "context": "undefined", "worklet": "undefined", "capture": "undefined", "mozCapture": "undefined" }, "forcedException": false, "reason": "Explicit capture mode never binds the element; no forced exceptions", "externalContext": "Native media-element source remains owned and running", "physicalOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [ { "type": "skip", "description": "Windows WebKit has no native WebAudio", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-fallback.spec.js", "line": 26, "column": 14 } } ] }, { "title": "ASR candidate + published-5.3.0: native playback volume and mute", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native playback volume and mute", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native playback volume and mute", "project": "chromium", "status": "passed", "browser": "153.0.8010.12", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native playback volume and mute", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published-5.3.0", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "annotations": [] }, { "title": "ASR candidate + published: native playback volume and mute", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "published", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "annotations": [] }, { "title": "ASR candidate + candidate: native playback volume and mute", "project": "firefox", "status": "passed", "browser": "155.0", "inputs": { "version": "candidate", "core": "candidate", "pluginSha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "mediaSha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "meter": "Native unity analyser inserted between plugin gain and destination", "physicalAudioOutput": false }, "core": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "annotations": [] }, { "title": "ASR candidate + published-5.3.0: native playback volume and mute", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorkletNode", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-playback.spec.js", "line": 24, "column": 14 } } ] }, { "title": "ASR candidate + published: native playback volume and mute", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorkletNode", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-playback.spec.js", "line": 24, "column": 14 } } ] }, { "title": "ASR candidate + candidate: native playback volume and mute", "project": "webkit", "status": "skipped", "browser": "26.6", "annotations": [ { "type": "skip", "description": "Windows WebKit lacks native AudioContext/AudioWorkletNode", "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\asr-playback.spec.js", "line": 24, "column": 14 } } ] } ] } ], "totals": { "passed": 106, "capabilitySkipped": 53, "failed": 0, "flaky": 0 }, "unit": { "focused": 229, "newExplicitCapture": 13, "main": 43, "legacy": 43 }, "artifacts": [ { "file": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.js", "sha256": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "bytes": 9034, "docsCopyIdentical": true }, { "file": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.legacy.js", "sha256": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "bytes": 9527, "docsCopyIdentical": true }, { "file": "packages/artplayer-plugin-asr/dist/artplayer-plugin-asr.mjs", "sha256": "1b7bac676d2c4976046b08fd7c1ec25724ff24952f5d93fc546e219466d975d8", "bytes": 13595, "docsCopyIdentical": true } ], "installed": { "file": "refactor/.cache/asr-package-types-swwh0u/report.json", "sha256": "a2736bfb24fa469e2944d0dc1abf761fb4cb26ab6d37f45c1dcaea165f1964b9", "cases": 17, "candidateConfigurations": 7, "invalidPerCandidate": 18, "packages": [ { "name": "artplayer", "archive": "D:\\github\\ArtPlayer\\refactor\\.cache\\asr-package-types-swwh0u\\artplayer.tgz", "sha256": "0c0ea52d41575261b836aefac68280733b119c75834ecad6d4bc78edb073f4c1", "files": { "package/ARCHITECTURE.md": "bee98fc9d93a3911d58e98ef15f2dbe07e12f2274c444d989094248a22079e46", "package/README.md": "1e185e65f67fc2081b4182bbc6c4558ea05b6e3fa3acc5dd0c3ac7df1d542b09", "package/THIRD_PARTY_NOTICES": "b77b5b46b79fa0cda850b0781f78c3b1112c4ed9672fa291956fe8eff53098e7", "package/dist/artplayer.js": "6dc8ca6d6eb34aa8a056cbc31328efd634530b3c5c60f0014cb7ce719fabc335", "package/dist/artplayer.legacy.js": "80f74a8a39df4baf64cc00c65d21cd57c011bfcdead0da38eea077fbc67c5c04", "package/dist/artplayer.mjs": "432e2b0ad92009a09743e020bf7c928c8b8f18a52496622b16259ec9ab20059f", "package/dist/i18n/ar.js": "bd0bef65f4f7dc3f8ed562904cc6fa9071ff4537fb64c1e0fc3d554141bcd3cb", "package/dist/i18n/ar.mjs": "59310b7bbeea83bbb7d73aadc5ca82a6ec269c3530d19aa741c94d5c64fc5da8", "package/dist/i18n/cs.js": "6e2c93daba24c2e48dfa206bcf4f2f2a8a02713b856e404d2e4e4ecd8309ca2f", "package/dist/i18n/cs.mjs": "c73fba18797d62d7b2581e67fe7340c35fe84510b2250ff1ecaad253d9cabbac", "package/dist/i18n/es.js": "f4133ac6ea06b69a474b33c4a1809a4066e2376bb9464a3f3aa8330f01f1944a", "package/dist/i18n/es.mjs": "1390bca3def2be115e811de337df0a0c3f63998e51359f283023246245c552a7", "package/dist/i18n/fa.js": "8d3ef2e0f0cc0ea480c2167b6fcb87cdf444e90759c3519e8daa139fec576da4", "package/dist/i18n/fa.mjs": "ab441e8a2d79043b29ceca87c783bf06874bb9d3a149c1604bc167eb481be2a9", "package/dist/i18n/fr.js": "89dc4194a6c0a962b9ce756b52c90401c1acf3b159f265f3bc0d7d6d7d987f03", "package/dist/i18n/fr.mjs": "99491878430fb7b6f2b7bf93da0588a831704b412e01116f23ba1d9d45863816", "package/dist/i18n/id.js": "4c6dc86db741bcc2857df55a9d037e82e91d375fa6fd22e0562809ff621b92db", "package/dist/i18n/id.mjs": "383e5803a6b6686c6de4e867770241de75b6f517dcca2bdedc6f2004bf6e1fb3", "package/dist/i18n/pl.js": "3a38828b1c3d719c0aca9906cf6a46c23555a8411f8d57645f0e0ce8147dc664", "package/dist/i18n/pl.mjs": "079ed96732979035297af387c64a7b99519b5a43107fb86735a654ea4fe8e9b5", "package/dist/i18n/ru.js": "62fac9dddb302eb16382e6e9301fc4b2c66f5f69d4a358a26b67026a5fa4e787", "package/dist/i18n/ru.mjs": "a893aeaee1d79409db72e324fbff200e3864f33ed168f04d91d25f7cf2efa765", "package/dist/i18n/tr.js": "1492c36b069a7d73db4f3913bd18085faff7afd8b3c158138fe264e31600e38c", "package/dist/i18n/tr.mjs": "a90478cac078836b76c2a98261907610fee07f3e4b28671b8e7dbf533778f918", "package/dist/i18n/vi.js": "c7216ef7e608a79b7e2c479a07bf310d4ab79577947ac4a62d676faaced0e9cf", "package/dist/i18n/vi.mjs": "66270fdfa0b5da396322d1769169b7df37a030ba15ac18eb30bd87b3af8074ec", "package/dist/i18n/zh-tw.js": "11c49857d6d40a5ffd224ffa59c9026e71621b345f63c5a086326db80a22371a", "package/dist/i18n/zh-tw.mjs": "a38e630cb96de96c15d824686aec750e25cf6c8ada01285a292442a81566314f", "package/package.json": "82e92699e7c29847f32ac6767ece0401290e7d7a12854722bdbcfd09b90b7954", "package/types/COMPATIBILITY.md": "a7da9e102a116104b513df4f7451247b7759bc502d3375f30bd5b14a541826e0", "package/types/README.md": "1bd9868e773610e6312fd48a1c5aa20772d29df0af40c3db66e75b7ab4a1aee0", "package/types/artplayer.d.cts": "3685065e4263abcfd9d953176e461d5b3eb990b0363b54689a7f55deba770fef", "package/types/artplayer.d.mts": "b664fec51ee5c5381f2ceab25d99d52aee56feab04a2ee7b4ea5b2145ea5fa0e", "package/types/artplayer.d.ts": "5d0162adf7ac6d0f2bb9b5cfe361f28657c4d9c540cadbf36eba3cc954ce50f8", "package/types/component.d.ts": "ae5bc1ddeaa1ee1ebbc62573e32423993727079205c64751a5a314170e588a32", "package/types/config.d.ts": "36f9a84cd436f17701a0d11d3417fc1fe0414e0c52c80083b94a85dfc329e37e", "package/types/cssVar.d.ts": "93217860fff2ebf750f606d95ddd22220a58837119e63bdf2f5f78fd7488458b", "package/types/emitter.d.ts": "7e1f9a2a8ce65feb95734f1ed52d1334e57aa388bbef2a43d8bc53a9b6f6623c", "package/types/events.d.ts": "f83624c9268a284477e8bd793fe3562a2363b72f2a44d5c64fe8c6a6cede8830", "package/types/i18n.d.ts": "f4f2f05bdfda73c74fef34767cb18ee8e11b743120b1c4598e9714d7846018e5", "package/types/icons.d.ts": "326a67ba7bdcf52862c5b2a269e540140aff98d05c7b96196485a77f84fe5960", "package/types/language.d.cts": "f7928e108cf7b7814c2d75cb0a525333e95873fca6cd6d89a740450656b9c1cd", "package/types/language.d.mts": "6619a26d604b7cccbe2f596243d87ae37cfaae33b8b52874ec071d9787446f9e", "package/types/legacy/language.d.ts": "c7abda4d506fd933c350e9030290bf9e64347a921d683a66115da1995ebe0a81", "package/types/option.d.ts": "ccf2c8ddc537dc65c9682d39f044726e23bff18f476b622512d7e6a4b949b5f6", "package/types/playback.d.ts": "58705c273df6e76a77a6575e769a9ec6c013785c25080f2551aa22415788d870", "package/types/player.d.ts": "92b00211b70ac71336e495899df972a0519dd138111846044fe4e0f967966177", "package/types/plugin.d.ts": "fc3594a41c51d8248713e33c486fb1f6a518ac5c7ce31be6988a6cd8d052c5f3", "package/types/quality.d.ts": "1ac1a48b4f74ff9ba1ce60443e1463d50d1c6a2e5d87d63dc7d2a8eb7f4c2c34", "package/types/runtime.d.cts": "7ee988dfea9a0ac71a34a656f96f7b74e78aa92547cfdfab7ff7e1139a77d4a3", "package/types/runtime.d.mts": "dcb85f59a8b7714918ced0c1d18c2bb24e8b80b56d8c594e019dcbdb5ad88b08", "package/types/runtime.d.ts": "9c6ccd39a1be293f17ae46dae8ea077053e12635ee79d73a5e3b3a559230fcff", "package/types/runtime/component.d.ts": "1b4c0cee44568649e80140fe778febfcae88af0ac85515f1cbeff78ab0c6d14f", "package/types/runtime/construction.d.ts": "7a87bedf6f7ffff0c46078aa5f1551e0077d35574e286516121f5f935e2d9ce4", "package/types/runtime/events.d.ts": "a1e2f9d387475453eaf95c2a5ee79e228636c0bb859bda3fcc46da46574a0c31", "package/types/runtime/media.d.ts": "8fc89401be7fe25542c169d07dd5675f10916ed20be8493e19695966cf3864a8", "package/types/runtime/option.d.ts": "6e334e1a76fdcc40b4665c02523bd31c3994d96078fadeb40e23422aa54c1a1d", "package/types/runtime/player.d.ts": "8ac6383502e4872e83659838844856903031a81a0adc8e8535feb78453aa042c", "package/types/runtime/plugin.d.ts": "8528f2b17843149f42f9cc16d6fd70baa238c9dc2c329b67d2c38096799c69bd", "package/types/runtime/services.d.ts": "604c9f8e4b6c0da818f96576bf9f4b0e96085a9003927b2f7ba30027b1ba237e", "package/types/runtime/setting.d.ts": "349c1fcb205ad312916bd3ee55e6bf241ea8a569fb2ab6c80822e69fc518f7d7", "package/types/runtime/subtitle.d.ts": "269ff84678d327b3a9dc2f5bc6cc0d731d1e081b85422e474621d5d792efb153", "package/types/runtime/template.d.ts": "7a62f968a38b4bf9109a4439557c02074eb1d62ba1f6e21a8eb194e91f0badfe", "package/types/runtime/utils.d.ts": "6bf731705d86853e066dbaf3b8d4003b6548423fe615b7412b722bd0d3a6e48b", "package/types/setting.d.ts": "08305a75dff96f06490430e099338b463df471b550c1d0dac3abc8995b39eb09", "package/types/subtitle.d.ts": "b18314e2d64efdb6045830b6e12f615ae2ed585416130e562329ad3ea337f6ce", "package/types/template.d.ts": "4792bc0c2cbcb7966e4375118bd34b326166e0831862e94ace4cf6b1bbe6a8c8", "package/types/utils.d.ts": "fca0d3d814df94a25f9eb067c86fa0cf272e2791bac793b91229d57680797712" } }, { "name": "artplayer-plugin-asr", "archive": "D:\\github\\ArtPlayer\\refactor\\.cache\\asr-package-types-swwh0u\\artplayer-plugin-asr.tgz", "sha256": "a5fbf0b82dcaf1cbbcd490dcba742056982ac5aba6ef972d6a891dd1c5416819", "files": { "package/ARCHITECTURE.md": "39d6ab8acc9145467b160973aae93d4067e62b0f353bf2fe8652903c778366f1", "package/README.md": "0b8f79c5632bb35e68863e2a7b5feb0422401cc875cdbc4f20ee023c64e7fa15", "package/dist/artplayer-plugin-asr.js": "06b386f6a4744801f4153944ed6e2bd37822a85e177aa2a0d800c30002ef87bf", "package/dist/artplayer-plugin-asr.legacy.js": "639ae9bdede0e26c8af0251b9c1ed12e7fba9e0b6b79cb0556290741040f9697", "package/dist/artplayer-plugin-asr.mjs": "1b7bac676d2c4976046b08fd7c1ec25724ff24952f5d93fc546e219466d975d8", "package/package.json": "781b1eebefdff5fdc234b793ff9d6d8263275115ccff4c4d90c55eca942f2444", "package/types/artplayer-plugin-asr.d.ts": "afa3a72330cdfe7858d6aa3f95c4a77d6f19fd5c34da5adc084c0f83f5e3b99a", "package/types/runtime.d.cts": "2965dccc49a3a75c3b16c0c13501077b8ac199e78bac2d19d57be3d811583606", "package/types/runtime.d.mts": "ff0769d3e408d66c7d38574171ff2621456afccc50ee8191ca4ee394dc57666e", "package/types/runtime.d.ts": "2965dccc49a3a75c3b16c0c13501077b8ac199e78bac2d19d57be3d811583606" } } ] }, "logs": [ { "file": "refactor/.cache/asr09-explicit-unit-red.log", "sha256": "fedd60eb3b78c7ea4e29487f2516b68b1c4e888d674a26c77271ef8188c1aca4" }, { "file": "refactor/.cache/asr09-restart-race-red.log", "sha256": "34b95af7c0896d378a340de1fb254f386a733be6522ac9f8f4d652bd833d6317" }, { "file": "refactor/.cache/asr09-unit.log", "sha256": "42d2e800d1673a8e9e692601ce4c8cf3391600676beb2eb7d800cc5b7a3f63f6" }, { "file": "refactor/.cache/asr09-unit-main.log", "sha256": "096c02dd596746fb1793e1b47dc45abc364150ccbd14fd8421d5828866c02451" }, { "file": "refactor/.cache/asr09-unit-legacy.log", "sha256": "c4b6ef2de522e33681663326c8080d9e43641f3e597f8ae78e55f5fd6d572cc6" }, { "file": "refactor/.cache/asr09-build.log", "sha256": "106356a4b62d95bc6b04fee01d138f7ba264e2ddd4a8c88a3d3f90c026bbdcc0" }, { "file": "refactor/.cache/asr09-types.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, { "file": "refactor/.cache/asr09-strict.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, { "file": "refactor/.cache/asr09-lint.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, { "file": "refactor/.cache/asr09-installed.log", "sha256": "da134c81ec2fae10f5a4d5a95af755ddf968f9680ee7455fb79b774b61593a8a" }, { "file": "refactor/.cache/asr09-installed-final.log", "sha256": "95c207aa0f09a5c4cbfe60b84cad667d7a1d18428ee714bd988f58c159135f5b" } ], "inputLfSha256": { "packages/artplayer-plugin-asr/src/audio-graph.ts": "abe87a81af7c3864d7b3255b7d8033fdc8c204b26025939f58338439a858ece4", "packages/artplayer-plugin-asr/src/capture.ts": "9cec5de6d09e6ce859b166ae4f41f2c4be7754b437a8e228bf4b02ef7bab212a", "packages/artplayer-plugin-asr/src/index.ts": "283513b118d9f7395d9f8e2423b2192e8fd95e003cb22f27b838a05a22473d0e", "packages/artplayer-plugin-asr/src/types.ts": "101e1177faf96c4445c7c93712babbc4a1697df3f69c83b6e5c1055bfcf9669b", "packages/artplayer-plugin-asr/types/artplayer-plugin-asr.d.ts": "6a66680b74e0c4fa3ba8395ecf7abd608f13bfed4e0f6c5cf76f1563f0bae0ec", "test/asr-explicit-capture.test.js": "eb4bcb7122c8a3e1a79bc5394e262d1e343932cff504c3979b74f78ecaecbde2", "test/types/asr-public.ts": "8fad3971088bb17795176e2f2a9595b7a033cb6654049fe6f09984510ea50ae7", "test/browser/asr-fallback.spec.js": "b855563daeb055d7818c8f40e914c8a743c68eeac1a20e2418d888ea89876905", "test/browser/asr-capture-cors.spec.js": "abbb54d2244c9299568571846932819b82f564541b991338110e740ff1dbbacb" }, "limitations": [ "No automatic external ownership detection; explicit capture must be selected.", "Default CORS silence remains ASR-CORS-01; explicit capture cannot bypass native restrictions.", "Captured PCM ignores media mute/volume and does not include external graph effects or independent audio-track media.", "No physical audio/Safari/device/recognition-service acceptance; ASR-05 and ASR-06 remain unfinished." ], "releaseReady": false }