{"list":[{"title":"AffectedFeatureEntry","link":"<a href=\"global.html#AffectedFeatureEntry\">AffectedFeatureEntry</a>","description":"<p>An object describes an entry of an affected feature.</p>"},{"title":"AffectedFeatureEntry","link":"<a href=\"global.html#AffectedFeatureEntry\">AffectedFeatureEntry</a>","description":"<p>An object describes an entry of an affected feature.</p>"},{"title":"BANDWIDTH_QUALITY_LEVEL","link":"<a href=\"global.html#BANDWIDTH_QUALITY_LEVEL\">BANDWIDTH_QUALITY_LEVEL</a>","description":"<p>Enumeration of the bandwidth quality level.</p>"},{"title":"BASIC_INFO_ATTR_INDEX","link":"<a href=\"global.html#BASIC_INFO_ATTR_INDEX\">BASIC_INFO_ATTR_INDEX</a>","description":"<p>Enumeration of attribute index of the basic information.</p>"},{"title":"BasicInfoEntry","link":"<a href=\"global.html#BasicInfoEntry\">BasicInfoEntry</a>","description":"<p>An object describes an entry of basic information.</p>"},{"title":"BasicInfoEntry","link":"<a href=\"global.html#BasicInfoEntry\">BasicInfoEntry</a>","description":"<p>An object describes an entry of basic information.</p>"},{"title":"CameraDumpOptions","link":"<a href=\"global.html#CameraDumpOptions\">CameraDumpOptions</a>"},{"title":"CheckItem","link":"<a href=\"global.html#CheckItem\">CheckItem</a>","description":"<p>An object describes an entry of a supported feature checking.</p>"},{"title":"CheckItem","link":"<a href=\"global.html#CheckItem\">CheckItem</a>","description":"<p>An object describes an entry of a supported feature checking.</p>"},{"title":"DEF_CONNECT_TIMEOUT","link":"<a href=\"global.html#DEF_CONNECT_TIMEOUT\">DEF_CONNECT_TIMEOUT</a>","description":"<p>The default connection timeout, 20 seconds.</p>"},{"title":"DEF_PROBE_DURATION","link":"<a href=\"global.html#DEF_PROBE_DURATION\">DEF_PROBE_DURATION</a>","description":"<p>The default probing duration, 120 seconds.</p>"},{"title":"DiagnosticReport","link":"<a href=\"global.html#DiagnosticReport\">DiagnosticReport</a>","description":"<p>An object describes a report of the entire diagnostic.</p>"},{"title":"DiagnosticResult","link":"<a href=\"global.html#DiagnosticResult\">DiagnosticResult</a>","description":"<p>Diagnostic result object.</p>"},{"title":"ERR_CODE","link":"<a href=\"global.html#ERR_CODE\">ERR_CODE</a>","description":"<p>Enumeration of a collection of customized error codes defined and used by ProberSDK.</p>"},{"title":"FeatureEntry","link":"<a href=\"global.html#FeatureEntry\">FeatureEntry</a>","description":"<p>An object describes a piece of supported feature.</p>"},{"title":"FeatureEntry","link":"<a href=\"global.html#FeatureEntry\">FeatureEntry</a>","description":"<p>An object describes a piece of supported feature.</p>"},{"title":"NETWORK_QUALITY_LEVEL","link":"<a href=\"global.html#NETWORK_QUALITY_LEVEL\">NETWORK_QUALITY_LEVEL</a>","description":"<p>Enumeration of the network quality level.</p>"},{"title":"NET_PROBING_DATA_TYPE","link":"<a href=\"global.html#NET_PROBING_DATA_TYPE\">NET_PROBING_DATA_TYPE</a>","description":"<p>Enumeration of the data type of the network diagnostic.\nIt will be used to determine the type of data you received and how to handle them.</p>"},{"title":"NetworkDiagnosticConfig","link":"<a href=\"global.html#NetworkDiagnosticConfig\">NetworkDiagnosticConfig</a>","description":"<p>An object represents the configuration of network diagnostic.</p>"},{"title":"NetworkDiagnosticResult","link":"<a href=\"global.html#NetworkDiagnosticResult\">NetworkDiagnosticResult</a>","description":"<p>An object describes the report of the network diagnostic.</p>"},{"title":"NetworkDiagnosticStats","link":"<a href=\"global.html#NetworkDiagnosticStats\">NetworkDiagnosticStats</a>","description":"<p>An object describes the real-time network diagnostic statistics.</p>"},{"title":"NetworkDiagnosticStatsContent","link":"<a href=\"global.html#NetworkDiagnosticStatsContent\">NetworkDiagnosticStatsContent</a>","description":"<p>An object describes the content/data part of the real-time network diagnostic statistics.</p>"},{"title":"NetworkDiagnosticStatsData","link":"<a href=\"global.html#NetworkDiagnosticStatsData\">NetworkDiagnosticStatsData</a>","description":"<p>An object describes the statistics of a network diagnostic.</p>"},{"title":"NetworkDiagnosticStatsReport","link":"<a href=\"global.html#NetworkDiagnosticStatsReport\">NetworkDiagnosticStatsReport</a>","description":"<p>An object describes the report of the final and average statistics of a network diagnostic.</p>"},{"title":"NetworkStatsListener","link":"<a href=\"global.html#NetworkStatsListener\">NetworkStatsListener</a>","description":"<p>A function object is used as a listener to listen the network diagnostic statistics.</p>"},{"title":"PROTOCOL_TYPE","link":"<a href=\"global.html#PROTOCOL_TYPE\">PROTOCOL_TYPE</a>","description":"<p>Enumeration of the protocol type that ProbeSDK checks in a network diagnostic.</p>"},{"title":"PSDKError","link":"<a href=\"global.html#PSDKError\">PSDKError</a>","description":"<p>An object, indicates an error generated by ProberSDK.</p>"},{"title":"Prober","link":"<a href=\"Prober.html\">Prober</a>"},{"title":"ProtocolEntry","link":"<a href=\"global.html#ProtocolEntry\">ProtocolEntry</a>","description":"<p>An object represents the details of protocols which are used in the network diagnostics.</p>"},{"title":"RENDERER_TYPE","link":"<a href=\"global.html#RENDERER_TYPE\">RENDERER_TYPE</a>","description":"<p>Enumeration of the rendering types supported by ProbeSDK.</p>"},{"title":"RendererOptions","link":"<a href=\"global.html#RendererOptions\">RendererOptions</a>","description":"<p>An object describes how to render video streams.</p>"},{"title":"Reporter","link":"<a href=\"Reporter.html\">Reporter</a>"},{"title":"SUPPORTED_FEATURE_INDEX","link":"<a href=\"global.html#SUPPORTED_FEATURE_INDEX\">SUPPORTED_FEATURE_INDEX</a>","description":"<p>Enumeration of index of the supported features.</p>"},{"title":"TarEntry","link":"<a href=\"global.html#TarEntry\">TarEntry</a>"},{"title":"buildTarBlob","link":"<a href=\"global.html#buildTarBlob\">buildTarBlob</a>","description":"<p>Build a TAR blob from entries.</p>"},{"title":"canSupportStringLength","link":"<a href=\"global.html#canSupportStringLength\">canSupportStringLength</a>","description":"<p>Test whether can allocate a string of a given length.</p>"},{"title":"cleanup","link":"<a href=\"global.html#cleanup\">cleanup</a>","description":"<p>Cleanup the resources created in ProbeSDK, like network connections, rendering resources, etc.</p>"},{"title":"diagnoseAudio","link":"<a href=\"global.html#diagnoseAudio\">diagnoseAudio</a>","description":"<p>Performs an asynchronous audio diagnostic by recording audio from a specified input device\nand playing it back through a specified output device. Supports custom recording duration,\nMIME type selection, and captures all errors, returning them as a {@link DiagnosticResult}.</p>"},{"title":"diagnoseVideo","link":"<a href=\"global.html#diagnoseVideo\">diagnoseVideo</a>","description":"<p>Diagnose video device like camera and show the result on a renderable object.\nYou can select a camera by setting {@link constraints} and different renderer type by setting the parameter {@link options}.\nFour renderer types are supported by ProbeSDK. Please refer to the documentation of {@link RENDERER_TYPE}.</p>\n<p>Once the video diagnostic is launched, a {@link MediaStream} object is saved to the field <code>stream</code> of {@link DiagnosticResult}.\nIt is necessary when you want to stop the video diagnostic, if not stopping it, the camera capturing currently is always working.</p>\n<p>Different renderer types require different {@link RendererOptions}:</p>\n<ul>\n<li>VIDEO_TAG requires a video element({@link HTMLMediaElement})</li>\n<li>WebGL/WebGL2/WebGPU requires a canvas({@link HTMLCanvasElement}) or an OffscreenCanvas({@link OffscreenCanvas})</li>\n</ul>"},{"title":"gzipBlobIfSupported","link":"<a href=\"global.html#gzipBlobIfSupported\">gzipBlobIfSupported</a>","description":"<p>Optionally gzip a blob using CompressionStream (Chrome).</p>"},{"title":"padNull","link":"<a href=\"global.html#padNull\">padNull</a>","description":"<p>Minimal TAR (ustar) builder for browser use.</p>\n<ul>\n<li>No dependencies</li>\n<li>Supports regular files only</li>\n<li>Returns a Blob that can be downloaded and later extracted with standard tar tools</li>\n</ul>"},{"title":"queryRid","link":"<a href=\"global.html#queryRid\">queryRid</a>","description":"<p>Query the trackingId(rid) of last round of probing.</p>"},{"title":"releaseMediaStream","link":"<a href=\"global.html#releaseMediaStream\">releaseMediaStream</a>","description":"<p>Releases the resources associated with a given MediaStream.</p>\n<p>This function stops all tracks in the provided MediaStream to release\nthe hardware resources (e.g., camera, microphone) and removes them\nfrom the stream. It ensures that no resources are left in use after\nthe MediaStream is no longer needed.</p>\n<p>Note that ProbeSDK is not responsible for setting the {@link stream} you pass to null.\nSo, the caller should maintain its lifecycle.</p>"},{"title":"reportBasicInfo","link":"<a href=\"global.html#reportBasicInfo\">reportBasicInfo</a>","description":"<p>Report basic information of the target device, like browser information, OS, etc.</p>"},{"title":"reportFeatures","link":"<a href=\"global.html#reportFeatures\">reportFeatures</a>","description":"<p>Report whether the advanced features are supported or not on the target device.</p>"},{"title":"requestMediaDevicePermission","link":"<a href=\"global.html#requestMediaDevicePermission\">requestMediaDevicePermission</a>","description":"<p>Requests media device permission asynchronously.</p>"},{"title":"requestMediaDevices","link":"<a href=\"global.html#requestMediaDevices\">requestMediaDevices</a>","description":"<p>Requests the media devices asynchronously.</p>\n<p>This function checks if the <code>enumerateDevices</code> method is supported the browser's <code>navigator.mediaDevices</code> object.\nIf supported, it retrieves a list of available media devices. If not, it returns an object of {@link PSDKError}\nindicating the lack of support.</p>"},{"title":"startCameraDump","link":"<a href=\"global.html#startCameraDump\">startCameraDump</a>","description":"<p>Start a camera dump session for offline troubleshooting.</p>\n<p>This feature is designed to help diagnose issues like camera preview flicker/black frames by:</p>\n<ul>\n<li>Recording the selected camera stream into a small <code>video.webm</code></li>\n<li>Collecting per-frame luminance statistics (<code>frames.jsonl</code>) to locate black frames precisely</li>\n<li>Capturing basic track events (<code>events.jsonl</code>)</li>\n<li>Packaging everything into a single downloadable bundle (<code>.probe.tar</code> or <code>.probe.tar.gz</code>)</li>\n</ul>\n<p>Chrome-only note: This API relies on {@link MediaStreamTrackProcessor}.</p>"},{"title":"startToDiagnose","link":"<a href=\"global.html#startToDiagnose\">startToDiagnose</a>","description":"<p>Start a full diagnostic that includes the network diagnostic, basic information, and supported features report .\nIt depends on the network diagnostic. Once it is called, the network diagnostic begins, and a report will be generated automatically after it ends.</p>\n<p>Before the diagnosis starts, you need to specify the detection time, connection timeout time and other parameters.\nFor the detection time, we recommend setting it at more than 2 minutes. This is because in network diagnosis, if a server is not connected,\nwe will try to connect to an alternative server, which will lead to a connection timeout wait.\nIt takes up most of the detection time, resulting in less detection time after the connection, resulting in inaccurate data.\nTherefore, we recommend that the detection time be set relatively large, more than 2 minutes, such as 3-5 minutes is OK.\nIf you set the time too short, the results of the network diagnosis will not be very accurate and will not help you diagnose the problem.</p>"},{"title":"stopToDiagnose","link":"<a href=\"global.html#stopToDiagnose\">stopToDiagnose</a>","description":"<p>Stop the ongoing network diagnostic that was initiated by the {@link startToDiagnose} method.</p>\n<p>This function will immediately stop all network probing activities, cleanup all resources including\nnetwork connections, timers, and WebAssembly instances. If a diagnostic is currently running,\nit will generate a final report with the data collected up to the point of stopping.</p>"},{"title":"stopToDiagnoseVideo","link":"<a href=\"global.html#stopToDiagnoseVideo\">stopToDiagnoseVideo</a>","description":"<p>Stops the video diagnostic that was started by the {@link diagnoseVideo} method.</p>\n<p>The frontend or any caller can pass the {@link MediaStream} of {@link DiagnosticResult} to stop video diagnostic,\nlike removing the video element or the canvas on the screen are necessary actions too. Note that, you can still\ncall {@link releaseMediaStream} to manually destroy the {@link MediaStream}.</p>"}]}