zego-express-engine-reactnative
Version:
React Native Zego Express Video for Android & iOS
693 lines • 198 kB
HTML
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ZegoEventListener | zego-express-engine-reactnative</title>
<meta name="description" content="Documentation for zego-express-engine-reactnative">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">zego-express-engine-reactnative</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
<input type="checkbox" id="tsd-filter-only-exported" />
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../globals.html">Globals</a>
</li>
<li>
<a href="../modules/_zegoexpresseventhandler_.html">"ZegoExpressEventHandler"</a>
</li>
<li>
<a href="_zegoexpresseventhandler_.zegoeventlistener.html">ZegoEventListener</a>
</li>
</ul>
<h1>Interface ZegoEventListener</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ZegoEventListener</span>
</li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section tsd-is-external">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#imrecvbarragemessage" class="tsd-kind-icon">IMRecv<wbr>Barrage<wbr>Message</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#imrecvbroadcastmessage" class="tsd-kind-icon">IMRecv<wbr>Broadcast<wbr>Message</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#imrecvcustomcommand" class="tsd-kind-icon">IMRecv<wbr>Custom<wbr>Command</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#apicalledresult" class="tsd-kind-icon">api<wbr>Called<wbr>Result</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#audioroutechange" class="tsd-kind-icon">audio<wbr>Route<wbr>Change</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#captureddatarecordprogressupdate" class="tsd-kind-icon">captured<wbr>Data<wbr>Record<wbr>Progress<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#captureddatarecordstateupdate" class="tsd-kind-icon">captured<wbr>Data<wbr>Record<wbr>State<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#capturedsoundlevelupdate" class="tsd-kind-icon">captured<wbr>Sound<wbr>Level<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#debugerror" class="tsd-kind-icon">debug<wbr>Error</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#enginestateupdate" class="tsd-kind-icon">engine<wbr>State<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#localdeviceexceptionoccurred" class="tsd-kind-icon">local<wbr>Device<wbr>Exception<wbr>Occurred</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#mixerrelaycdnstateupdate" class="tsd-kind-icon">mixer<wbr>RelayCDNState<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#mixersoundlevelupdate" class="tsd-kind-icon">mixer<wbr>Sound<wbr>Level<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#networkquality" class="tsd-kind-icon">network<wbr>Quality</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#networkspeedtesterror" class="tsd-kind-icon">network<wbr>Speed<wbr>Test<wbr>Error</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#networkspeedtestqualityupdate" class="tsd-kind-icon">network<wbr>Speed<wbr>Test<wbr>Quality<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playermediaevent" class="tsd-kind-icon">player<wbr>Media<wbr>Event</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playerqualityupdate" class="tsd-kind-icon">player<wbr>Quality<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playerrecvaudiofirstframe" class="tsd-kind-icon">player<wbr>Recv<wbr>Audio<wbr>First<wbr>Frame</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playerrecvsei" class="tsd-kind-icon">player<wbr>RecvSEI</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playerrecvvideofirstframe" class="tsd-kind-icon">player<wbr>Recv<wbr>Video<wbr>First<wbr>Frame</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playerrendervideofirstframe" class="tsd-kind-icon">player<wbr>Render<wbr>Video<wbr>First<wbr>Frame</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playerstateupdate" class="tsd-kind-icon">player<wbr>State<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#playervideosizechanged" class="tsd-kind-icon">player<wbr>Video<wbr>Size<wbr>Changed</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publishercapturedaudiofirstframe" class="tsd-kind-icon">publisher<wbr>Captured<wbr>Audio<wbr>First<wbr>Frame</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publishercapturedvideofirstframe" class="tsd-kind-icon">publisher<wbr>Captured<wbr>Video<wbr>First<wbr>Frame</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publisherqualityupdate" class="tsd-kind-icon">publisher<wbr>Quality<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publisherrelaycdnstateupdate" class="tsd-kind-icon">publisher<wbr>RelayCDNState<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publisherrendervideofirstframe" class="tsd-kind-icon">publisher<wbr>Render<wbr>Video<wbr>First<wbr>Frame</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publisherstateupdate" class="tsd-kind-icon">publisher<wbr>State<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publisherstreamevent" class="tsd-kind-icon">publisher<wbr>Stream<wbr>Event</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publishervideoencoderchanged" class="tsd-kind-icon">publisher<wbr>Video<wbr>Encoder<wbr>Changed</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#publishervideosizechanged" class="tsd-kind-icon">publisher<wbr>Video<wbr>Size<wbr>Changed</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#remotecamerastateupdate" class="tsd-kind-icon">remote<wbr>Camera<wbr>State<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#remotemicstateupdate" class="tsd-kind-icon">remote<wbr>Mic<wbr>State<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#remotesoundlevelupdate" class="tsd-kind-icon">remote<wbr>Sound<wbr>Level<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomextrainfoupdate" class="tsd-kind-icon">room<wbr>Extra<wbr>Info<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomonlineusercountupdate" class="tsd-kind-icon">room<wbr>Online<wbr>User<wbr>Count<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomstatechanged" class="tsd-kind-icon">room<wbr>State<wbr>Changed</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomstateupdate" class="tsd-kind-icon">room<wbr>State<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomstreamextrainfoupdate" class="tsd-kind-icon">room<wbr>Stream<wbr>Extra<wbr>Info<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomstreamupdate" class="tsd-kind-icon">room<wbr>Stream<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomtokenwillexpire" class="tsd-kind-icon">room<wbr>Token<wbr>Will<wbr>Expire</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#roomuserupdate" class="tsd-kind-icon">room<wbr>User<wbr>Update</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-external"><a href="_zegoexpresseventhandler_.zegoeventlistener.html#videoobjectsegmentationstatechanged" class="tsd-kind-icon">video<wbr>Object<wbr>Segmentation<wbr>State<wbr>Changed</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-external">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="imrecvbarragemessage" class="tsd-anchor"></a>
<h3>IMRecv<wbr>Barrage<wbr>Message</h3>
<div class="tsd-signature tsd-kind-icon">IMRecv<wbr>Barrage<wbr>Message<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>roomID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, messageList<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegobarragemessageinfo.html" class="tsd-signature-type">ZegoBarrageMessageInfo</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:589</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The callback triggered when Barrage Messages are received.</p>
</div>
<p>Available since: 1.5.0
Description: This callback is used to receive barrage messages sent by other users in the same room.
Use cases: Generally used in scenarios where there is a large number of messages sent and received in the room and the reliability of the messages is not required, such as live barrage.
When to trigger: After calling [loginRoom] to log in to the room, if a user in the room sends a barrage message through the [sendBarrageMessage] function, this callback will be triggered.
Restrictions: None
Caution: Barrage messages sent by users themselves will not be notified through this callback. When there are a large number of barrage messages in the room, the notification may be delayed, and some barrage messages may be lost.
Related callbacks: Develop can receive room broadcast messages through [onIMRecvBroadcastMessage], and can receive room custom signaling through [onIMRecvCustomCommand].</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>Room ID. Value range: The maximum length is 128 bytes.</p>
</dd>
<dt>param</dt>
<dd><p>List of received messages. Value range: Up to 50 messages can be received each time.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>roomID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, messageList<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegobarragemessageinfo.html" class="tsd-signature-type">ZegoBarrageMessageInfo</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>roomID: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>messageList: <a href="../classes/_zegoexpressdefines_.zegobarragemessageinfo.html" class="tsd-signature-type">ZegoBarrageMessageInfo</a><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="imrecvbroadcastmessage" class="tsd-anchor"></a>
<h3>IMRecv<wbr>Broadcast<wbr>Message</h3>
<div class="tsd-signature tsd-kind-icon">IMRecv<wbr>Broadcast<wbr>Message<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>roomID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, messageList<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegobroadcastmessageinfo.html" class="tsd-signature-type">ZegoBroadcastMessageInfo</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:574</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The callback triggered when Broadcast Messages are received.</p>
</div>
<p>Available since: 1.2.1
Description: This callback is used to receive broadcast messages sent by other users in the same room.
Use cases: Generally used when the number of people in the live room does not exceed 500
When to trigger: After calling [loginRoom] to log in to the room, if a user in the room sends a broadcast message via [sendBroadcastMessage] function, this callback will be triggered.
Restrictions: None
Caution: The broadcast message sent by the user will not be notified through this callback.
Related callbacks: You can receive room barrage messages through [onIMRecvBarrageMessage], and you can receive room custom signaling through [onIMRecvCustomCommand].</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>Room ID. Value range: The maximum length is 128 bytes.</p>
</dd>
<dt>param</dt>
<dd><p>List of received messages. Value range: Up to 50 messages can be received each time.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>roomID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, messageList<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegobroadcastmessageinfo.html" class="tsd-signature-type">ZegoBroadcastMessageInfo</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>roomID: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>messageList: <a href="../classes/_zegoexpressdefines_.zegobroadcastmessageinfo.html" class="tsd-signature-type">ZegoBroadcastMessageInfo</a><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="imrecvcustomcommand" class="tsd-anchor"></a>
<h3>IMRecv<wbr>Custom<wbr>Command</h3>
<div class="tsd-signature tsd-kind-icon">IMRecv<wbr>Custom<wbr>Command<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>roomID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, fromUser<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegouser.html" class="tsd-signature-type">ZegoUser</a>, command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:605</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The callback triggered when a Custom Command is received.</p>
</div>
<p>Available since: 1.2.1
Description: This callback is used to receive custom command sent by other users in the same room.
Use cases: Generally used when the number of people in the live room does not exceed 500
When to trigger: After calling [loginRoom] to log in to the room, if other users in the room send custom signaling to the developer through the [sendCustomCommand] function, this callback will be triggered.
Restrictions: None
Caution: The custom command sent by the user himself will not be notified through this callback.
Related callbacks: You can receive room broadcast messages through [onIMRecvBroadcastMessage], and you can receive room barrage message through [onIMRecvBarrageMessage].</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>Room ID. Value range: The maximum length is 128 bytes.</p>
</dd>
<dt>param</dt>
<dd><p>Sender of the command.</p>
</dd>
<dt>param</dt>
<dd><p>Command content received.Value range: The maximum length is 1024 bytes.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>roomID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, fromUser<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegouser.html" class="tsd-signature-type">ZegoUser</a>, command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>roomID: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>fromUser: <a href="../classes/_zegoexpressdefines_.zegouser.html" class="tsd-signature-type">ZegoUser</a></h5>
</li>
<li>
<h5>command: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="apicalledresult" class="tsd-anchor"></a>
<h3>api<wbr>Called<wbr>Result</h3>
<div class="tsd-signature tsd-kind-icon">api<wbr>Called<wbr>Result<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>errorCode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, funcName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, info<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:31</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Method execution result callback</p>
</div>
<p>Available since: 2.3.0
Description: When the monitoring is turned on through [setApiCalledCallback], the results of the execution of all methods will be called back through this callback.
Trigger: When the developer calls the SDK method, the execution result of the method is called back.
Restrictions: None.
Caution: It is recommended to monitor and process this callback in the development and testing phases, and turn off the monitoring of this callback after going online.</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>Error code, please refer to the error codes document <a href="https://docs.zegocloud.com/en/5548.html">https://docs.zegocloud.com/en/5548.html</a> for details.</p>
</dd>
<dt>param</dt>
<dd><p>Function name.</p>
</dd>
<dt>param</dt>
<dd><p>Detailed error information.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>errorCode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, funcName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, info<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>errorCode: <span class="tsd-signature-type">number</span></h5>
</li>
<li>
<h5>funcName: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>info: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="audioroutechange" class="tsd-anchor"></a>
<h3>audio<wbr>Route<wbr>Change</h3>
<div class="tsd-signature tsd-kind-icon">audio<wbr>Route<wbr>Change<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>audioRoute<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegoaudioroute.html" class="tsd-signature-type">ZegoAudioRoute</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:559</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Callback for device's audio route changed.</p>
</div>
<p>Available since: 1.20.0
Description: Callback for device's audio route changed.
Trigger: This callback will be called when there are changes in audio routing such as earphone plugging, speaker and receiver switching, etc.
Platform differences: Only supports iOS and Android.</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>Current audio route.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>audioRoute<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegoaudioroute.html" class="tsd-signature-type">ZegoAudioRoute</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>audioRoute: <a href="../enums/_zegoexpressdefines_.zegoaudioroute.html" class="tsd-signature-type">ZegoAudioRoute</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="captureddatarecordprogressupdate" class="tsd-anchor"></a>
<h3>captured<wbr>Data<wbr>Record<wbr>Progress<wbr>Update</h3>
<div class="tsd-signature tsd-kind-icon">captured<wbr>Data<wbr>Record<wbr>Progress<wbr>Update<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>progress<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegodatarecordprogress.html" class="tsd-signature-type">ZegoDataRecordProgress</a>, config<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegodatarecordconfig.html" class="tsd-signature-type">ZegoDataRecordConfig</a>, channel<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegopublishchannel.html" class="tsd-signature-type">ZegoPublishChannel</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:639</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The callback to report the current recording progress.</p>
</div>
<p>Available since: 1.10.0
Description: Recording progress update callback, triggered at regular intervals during recording.
Use cases: Developers can do UI hints for the user interface.
When to trigger: After [startRecordingCapturedData] is called, If configured to require a callback, timed trigger during recording.
Restrictions: None.</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>File recording progress, which allows developers to hint at the UI, etc.</p>
</dd>
<dt>param</dt>
<dd><p>Record config.</p>
</dd>
<dt>param</dt>
<dd><p>Publishing stream channel.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>progress<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegodatarecordprogress.html" class="tsd-signature-type">ZegoDataRecordProgress</a>, config<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegodatarecordconfig.html" class="tsd-signature-type">ZegoDataRecordConfig</a>, channel<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegopublishchannel.html" class="tsd-signature-type">ZegoPublishChannel</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>progress: <a href="../classes/_zegoexpressdefines_.zegodatarecordprogress.html" class="tsd-signature-type">ZegoDataRecordProgress</a></h5>
</li>
<li>
<h5>config: <a href="../classes/_zegoexpressdefines_.zegodatarecordconfig.html" class="tsd-signature-type">ZegoDataRecordConfig</a></h5>
</li>
<li>
<h5>channel: <a href="../enums/_zegoexpressdefines_.zegopublishchannel.html" class="tsd-signature-type">ZegoPublishChannel</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="captureddatarecordstateupdate" class="tsd-anchor"></a>
<h3>captured<wbr>Data<wbr>Record<wbr>State<wbr>Update</h3>
<div class="tsd-signature tsd-kind-icon">captured<wbr>Data<wbr>Record<wbr>State<wbr>Update<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>state<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegodatarecordstate.html" class="tsd-signature-type">ZegoDataRecordState</a>, errorCode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, config<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegodatarecordconfig.html" class="tsd-signature-type">ZegoDataRecordConfig</a>, channel<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegopublishchannel.html" class="tsd-signature-type">ZegoPublishChannel</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:620</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The callback triggered when the state of data recording (to a file) changes.</p>
</div>
<p>Available since: 1.10.0
Description: The callback triggered when the state of data recording (to a file) changes.
Use cases: The developer should use this callback to determine the status of the file recording or for UI prompting.
When to trigger: After [startRecordingCapturedData] is called, if the state of the recording process changes, this callback will be triggered.
Restrictions: None.</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>File recording status.</p>
</dd>
<dt>param</dt>
<dd><p>Error code, please refer to the error codes document <a href="https://docs.zegocloud.com/en/5548.html">https://docs.zegocloud.com/en/5548.html</a> for details.</p>
</dd>
<dt>param</dt>
<dd><p>Record config.</p>
</dd>
<dt>param</dt>
<dd><p>Publishing stream channel.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>state<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegodatarecordstate.html" class="tsd-signature-type">ZegoDataRecordState</a>, errorCode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, config<span class="tsd-signature-symbol">: </span><a href="../classes/_zegoexpressdefines_.zegodatarecordconfig.html" class="tsd-signature-type">ZegoDataRecordConfig</a>, channel<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegopublishchannel.html" class="tsd-signature-type">ZegoPublishChannel</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>state: <a href="../enums/_zegoexpressdefines_.zegodatarecordstate.html" class="tsd-signature-type">ZegoDataRecordState</a></h5>
</li>
<li>
<h5>errorCode: <span class="tsd-signature-type">number</span></h5>
</li>
<li>
<h5>config: <a href="../classes/_zegoexpressdefines_.zegodatarecordconfig.html" class="tsd-signature-type">ZegoDataRecordConfig</a></h5>
</li>
<li>
<h5>channel: <a href="../enums/_zegoexpressdefines_.zegopublishchannel.html" class="tsd-signature-type">ZegoPublishChannel</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="capturedsoundlevelupdate" class="tsd-anchor"></a>
<h3>captured<wbr>Sound<wbr>Level<wbr>Update</h3>
<div class="tsd-signature tsd-kind-icon">captured<wbr>Sound<wbr>Level<wbr>Update<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>soundLevel<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:493</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The local captured audio sound level callback.</p>
</div>
<p>Available since: 1.1.0
Description: The local captured audio sound level callback.
Trigger: After you start the sound level monitor by calling [startSoundLevelMonitor].
Caution:</p>
<ol>
<li>The callback notification period is the parameter value set when the [startSoundLevelMonitor] is called. The callback value is the default value of 0 When you have not called the interface [startPublishingStream] and [startPreview].</li>
<li>This callback is a high-frequency callback, and it is recommended not to do complex logic processing inside the callback.
Related APIs: Start sound level monitoring via [startSoundLevelMonitor]. Monitoring remote played audio sound level by callback [onRemoteSoundLevelUpdate]</li>
</ol>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>Locally captured sound level value, ranging from 0.0 to 100.0.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>soundLevel<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>soundLevel: <span class="tsd-signature-type">number</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="debugerror" class="tsd-anchor"></a>
<h3>debug<wbr>Error</h3>
<div class="tsd-signature tsd-kind-icon">debug<wbr>Error<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>errorCode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, funcName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, info<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:17</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The callback for obtaining debugging error information.</p>
</div>
<p>Available since: 1.1.0
Description: When the SDK functions are not used correctly, the callback prompts for detailed error information.
Trigger: Notify the developer when an exception occurs in the SDK.
Restrictions: None.
Caution: None.</p>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>Error code, please refer to the error codes document <a href="https://docs.zegocloud.com/en/5548.html">https://docs.zegocloud.com/en/5548.html</a> for details.</p>
</dd>
<dt>param</dt>
<dd><p>Function name.</p>
</dd>
<dt>param</dt>
<dd><p>Detailed error information.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>errorCode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, funcName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, info<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>errorCode: <span class="tsd-signature-type">number</span></h5>
</li>
<li>
<h5>funcName: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>info: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="enginestateupdate" class="tsd-anchor"></a>
<h3>engine<wbr>State<wbr>Update</h3>
<div class="tsd-signature tsd-kind-icon">engine<wbr>State<wbr>Update<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>state<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegoenginestate.html" class="tsd-signature-type">ZegoEngineState</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in ZegoExpressEventHandler.ts:45</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The callback triggered when the audio/video engine state changes.</p>
</div>
<p>Available since: 1.1.0
Description: Callback notification of audio/video engine status update. When audio/video functions are enabled, such as preview, push streaming, local media player, audio data observering, etc., the audio/video engine will enter the start state. When you exit the room or disable all audio/video functions , The audio/video engine will enter the stop state.
Trigger: The developer called the relevant function to change the state of the audio and video engine. For example: 1. Called ZegoExpressEngine's [startPreview], [stopPreview], [startPublishingStream], [stopPublishingStream], [startPlayingStream], [stopPlayingStream], [startAudioDataObserver], [stopAudioDataObserver] and other functions. 2. The related functions of MediaPlayer are called. 3. The [LogoutRoom] function was called. 4. The related functions of RealTimeSequentialDataManager are called.
Restrictions: None.
Caution:</p>
<ol>
<li>When the developer calls [destroyEngine], this notification will not be triggered because the resources of the SDK are completely released.</li>
<li>If there is no special need, the developer does not need to pay attention to this callback.</li>
</ol>
<dl class="tsd-comment-tags">
<dt>param</dt>
<dd><p>The audio/video engine state.</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>state<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegoenginestate.html" class="tsd-signature-type">ZegoEngineState</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>state: <a href="../enums/_zegoexpressdefines_.zegoenginestate.html" class="tsd-signature-type">ZegoEngineState</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-external">
<a name="localdeviceexceptionoccurred" class="tsd-anchor"></a>
<h3>local<wbr>Device<wbr>Exception<wbr>Occurred</h3>
<div class="tsd-signature tsd-kind-icon">local<wbr>Device<wbr>Exception<wbr>Occurred<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>exceptionType<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegodeviceexceptiontype.html" class="tsd-signature-type">ZegoDeviceExceptionType</a>, deviceType<span class="tsd-signature-symbol">: </span><a href="../enums/_zegoexpressdefines_.zegodevicetype.html" class="tsd-signature-type">ZegoDeviceType</a>, deviceID<sp