共用方式為


說話參與者的麥克風有問題

當說話參與者的麥克風發生問題時,可能會導致傳出音訊沒有聲音,造成通話中的單向音訊問題。

如何使用 SDK 進行偵測

您的應用程式可以使用使用者面向診斷 API,並註冊接聽程式回呼來偵測裝置問題。

麥克風問題會造成幾個相關事件,包括:

  • noMicrophoneDevicesEnumerated:系統中沒有可用的麥克風裝置。
  • microphoneNotFunctioning:瀏覽器會結束音訊輸入軌道。
  • microphoneMuteUnexpectedly:瀏覽器會將音訊輸入軌道設為靜音。

此外,媒體統計資料 API 也可讓您監視音訊輸入或輸出層級。

若要檢查傳送端的音訊層級,請查看 audioInputLevel 值,其範圍介於 0 到 65536,並指出音訊輸入裝置所擷取的音訊音量層級。

若要檢查接收端的音訊層級,請查看 audioOutputLevel 值,其範圍也是介於 0 到 65536。 這個值表示已解碼音訊範例的音量層級。 如果 audioOutputLevel 值很低,表示傳送者傳送的音量也很低。

如何減輕或解決

從 ACS 通話 SDK 的觀點來看,麥克風問題會被視為外部問題。 例如,noMicrophoneDevicesEnumerated 事件表示系統中沒有可用的麥克風裝置。 當使用者移除麥克風裝置,且系統中沒有其他麥克風裝置時,通常就會發生此問題。 當瀏覽器結束目前的音訊輸入音軌時會引發 microphoneNotFunctioning 事件,若操作系統或驅動程式層終止音訊輸入工作階段,就會發生此問題。 當音訊輸入音軌的來源暫時無法提供媒體資料時,就會發生 microphoneMuteUnexpectedly 事件。 例如,某些頭戴式裝置型號的硬體靜音按鈕會觸發此事件。

應用程式應該接聽使用者面向診斷 API 事件。 應用程式應在接收事件時顯示警告訊息。 這樣一來,使用者就會察覺到問題,並藉由切換至不同的麥克風裝置,或將其目前的麥克風裝置拔下後插入,以進行疑難排解。

參考資料

疑難排解程序

如果使用者在通話期間無法聽到聲音,其中一種可能性是說話參與者的麥克風有問題。 如果說話參與者使用您的應用程式,您可遵循此流程圖來針對問題進行疑難排解。

此圖表顯示針對麥克風問題進行疑難排解。

  1. 首先,檢查麥克風是否可用。 應用程式可以藉由叫用 DeviceManager.getMicrophone API 或偵測 noMicrophoneDevicesEnumerated UFD 錯誤事件來取得此資訊。
  2. 如果沒有可用的麥克風裝置,請提示使用者插入麥克風。
  3. 如果麥克風可以使用,但沒有傳出音訊,請考慮其他可能性,例如權限問題、裝置問題或網路問題。
  4. 如果權限遭到拒絕,請參閱說話參與者不會授與麥克風權限以取得詳細資訊。
  5. 如果已授與權限,請考慮問題是否是由外部問題造成,例如 microphoneMuteUnexpectedly UFD。
  6. 當瀏覽器將音訊輸入音軌設為靜音時,就會觸發 microphoneMuteUnexpectedly UFD 錯誤事件。應用程式可以監視此 UFD,但無法偵測 JavaScript 層的原因。 您仍然可以在應用程式中提供指示,並詢問使用者是否使用其頭戴式裝置上的硬體靜音按鈕。
  7. 如果使用者解除硬體靜音且 microphoneMuteUnexpectedly UFD 復原,問題就會解決。
  8. 如果使用者未使用硬體靜音,請要求使用者拔除並重新插入麥克風,或選取另一個麥克風。 請確定使用者未在系統層級將麥克風靜音。
  9. 發生 microphoneNotFunctioning UFD 錯誤事件時,也會發生沒有傳出音訊問題。
  10. 如果沒有 microphoneNotFunctioning UFD 錯誤事件,請考慮其他可能性,例如網路問題。
  11. 如果有 networkReconnect UFD 錯誤,則可能是因為網路中斷連線,導致傳出音訊暫時遺失。 如需詳細資訊,請參閱通話有網路問題
  12. 如果沒有麥克風相關事件,也沒有網路相關事件,請建立支援票證以要求 ACS 小組調查問題。 請參閱報告問題
  13. 如果發生 microphoneNotFunctioning UFD 錯誤事件,而且使用者沒有傳出音訊,則可以使用 ACS 靜音取消靜音來嘗試復原串流。
  14. 如果使用者執行 ACS 靜音和取消靜音之後 microphoneNotFunctioning UFD 未復原,則可能是麥克風裝置發生問題。 要求使用者拔除並重新插上麥克風,或選取另一個麥克風。