SDK 和 API 中的已知問題

這些文章提供與 Azure 通訊服務呼叫 SDK 和通訊服務呼叫自動化 API 相關的限制和已知問題的相關信息。

重要

有許多因素可能會影響通話體驗的品質。 若要深入瞭解通訊服務網路設定和測試最佳做法,請參閱 網路建議

呼叫 Web SDK

下列各節提供與javaScript語音和視訊通話 SDK 相關聯之 Azure 通訊服務 已知問題的相關信息。

Chrome M115 - 回歸

Chrome 版本 115 for Android 在進行視訊通話時引進了回歸-此錯誤的結果是使用者透過此版本的 Chrome 在 Group 和 Azure 通訊服務 Azure 通訊服務-Microsoft Teams 通話中沒有連出視訊。

  • 此回歸是 Chromium 上 引進的已知問題
  • 作為短期風險降低措施,請指示使用者在Android上使用 Microsoft Edge 或 Firefox,或避免在 Android 上使用 Google Chrome 115/116

Firefox 已知問題

Firefox 桌面瀏覽器支援現已可在公開預覽中取得。 已知問題包括:

  • 無法使用列舉說話者:如果您使用 Firefox,您的應用程式就無法透過通訊服務設備管理器列舉或選取說話者。 在此案例中,您必須透過操作系統選取裝置。
  • 進行 Firefox 桌面音訊\視訊通話時,目前不支援虛擬相機。

iOS Chrome 已知問題

iOS Chrome 瀏覽器支援現已可在公開預覽中取得。 已知問題包括:

  • 將瀏覽器切換至背景或鎖定裝置時,不會傳出和傳入音訊。 此問題已在 iOS 16.4+版中修正。
  • 沒有來自藍牙耳機的傳入/傳出音訊。 當使用者在 Azure 通訊服務 通話中間連接藍牙耳機時,音訊仍會從喇叭傳出,直到使用者鎖定並解除鎖定手機為止。 我們已在舊版 iOS 版本 (15.6, 15.7) 上看到此問題,而且無法在 iOS 16 上重現。

iOS Safari 顯示相機預覽的解析度大小不正確

當使用者在通話期間輪替手機或啟用/停用視訊時,會在iOS 16.7或iOS 17之前的版本發生此錯誤。 相機預覽會短暫顯示不正確的解析度大小,然後再返回正常狀態。 此問題無法在 iOS 17.4 Beta 上重現。 此處的相關 WebKit Bug

iOS 16 在呼叫期間將瀏覽器放在背景時引進了 Bug

iOS 16 版本引進了一個 Bug,可在使用 Safari 行動瀏覽器時停止 Azure 通訊服務 音訊\視訊通話。 Apple 知道此問題,並正在尋找其端的修正程式。 影響可能是 Azure 通訊服務 通話可能會在通話期間停止運作,而讓其再次運作的唯一解決方法是讓終端客戶重新啟動其電話。

若要重現此 Bug:

  • 讓使用者使用 i 電話 執行 iOS 16
  • 使用 Safari iOS 行動瀏覽器加入 Azure 通訊服務 通話(僅限音訊或音訊和視訊)
  • 如果在通話期間有人將 Safari 瀏覽器放在背景,並檢視 YouTube 或透過 藍牙 裝置連線時收到 FaceTime\phone 通話

結果:

  • 在這種情況發生幾分鐘之後,傳入和傳出視訊可能會停止運作。
  • 讓 Azure 通訊服務 通話再次運作的唯一方法是讓使用者重新啟動手機。

Chrome M98 - 回歸

Chrome 版本 98 引進了異常的視訊主要畫面格產生回歸,對大部分使用者(70%+)影響傳送視訊串流解析度的影響。

在 PSTN 通話中,使用者仍然可以從 ACS 通話中聽到音訊

當 Android Chrome 用戶體驗傳入 PSTN 通話接聽 PSTN 通話之後,ACS 通話中的麥克風變成靜音時,就會發生此問題。 ACS 通話的傳出音訊會靜音,因此其他參與者無法聽到 PSTN 通話的使用者。 值得注意的是,用戶的傳入音訊不會靜音,而且此行為是瀏覽器固有的。

通話期間沒有內送音訊

有時候,Azure 通訊服務 通話中的使用者可能無法從遠端參與者聽到音訊。 有一個相關的 Chromium 錯誤會導致此問題,此問題可藉由重新連線對等 連線 來減輕。 我們已新增此因應措施,因為 SDK 1.9.1 (穩定)和 SDK 1.10.0 (beta)。

在 Android Chrome 上,如果使用者加入 Azure 通訊服務 呼叫數次,傳入的音訊也可以消失。 在重新整理頁面之前,用戶無法聽到來自其他參與者的音訊。 我們已修正 SDK 1.10.1-beta.1 中的此問題,並改善音訊資源使用量。

某些 Android 裝置的通話失敗案例,但群組通話除外。

許多特定的 Android 裝置無法啟動、接受通話和會議。 遇到此問題的裝置,無法在每次嘗試時復原並失敗。 這些大多是 Samsung 型號 A 裝置,尤其是 A326U、A125U 和 A215U 型號。

  • 此回歸是 Chromium引進的已知問題。

Android Chrome 在瀏覽器進入背景後將通話設為靜音一分鐘

在 Android Chrome 上,如果使用者在 Azure 通訊服務 呼叫,並將瀏覽器置於背景一分鐘。 麥克風會失去存取權,而通話中的其他參與者無法聽到使用者的音訊。 一旦使用者將瀏覽器帶到前景,麥克風就會再次可供使用。 此處與此處的相關 Chromium Bug

行動裝置 (iOS 和 Android) 使用者已卸除通話,但仍會顯示在參與者清單上。

如果行動使用者不使用 Call.hangUp() API 離開 Azure 通訊服務 群組呼叫,就會發生此問題。 當行動使用者關閉瀏覽器或重新整理網頁而不掛斷時,群組通話中的其他參與者仍可在參與者清單中看到此行動使用者約 60 秒。

如果使用者移至另一個應用程式並返回瀏覽器,iOS Safari 會重新整理頁面

如果使用 iOS Safari 呼叫 Azure 通訊服務 使用者,並切換至其他應用程式一段時間,就會發生此問題。 使用者返回瀏覽器之後,瀏覽器頁面可能會重新整理。 這是因為 OS 會終止瀏覽器。 減輕此問題的其中一種方法是保留一些狀態,並在頁面重新整理之後復原。

iOS 15.1 使用者加入群組通話或 Microsoft Teams 會議。

  • 有時候,當內送 PSTN 收到具有通話或會議停止回應的索引標籤時。 此處和此處的相關 WebKit Bug。

當 iOS Safari 和 Android Chrome 發生特定中斷時,本機麥克風/相機會靜音。

如果另一個應用程式或操作系統接管麥克風或相機的控制,就可能發生此問題。 以下是使用者正在呼叫時可能發生的一些範例:

  • 來電會透過 PSTN(公用交換電話網路)抵達,並擷取麥克風裝置存取。
  • 例如,使用者播放YouTube影片,或啟動FaceTime通話。 切換至另一個原生應用程式可以擷取麥克風或相機的存取權。
  • 用戶可啟用 Siri,以擷取麥克風的存取權。

例如,在 iOS 上,當在 Azure 通訊服務 通話時,如果 PSTN 通話傳入,則會引發麥克風MutedUnexepectedly錯誤的 UFD,且音訊會停止在 Azure 通訊服務 通話中流動,且通話標示為靜音。 PSTN 通話結束後,用戶必須取消撥動 Azure 通訊服務 通話,音訊才能在 Azure 通訊服務 通話中再次開始流動。 在 PSTN 通話傳入 Android Chrome 的情況下,音訊會停止在 Azure 通訊服務 通話中流動,且 Azure 通訊服務 通話不會標示為靜音。 在此情況下,沒有麥克風MutedUnexepectedly UFD 事件。 PSTN 通話完成後,Android Chrome 會自動重新取得音訊,音訊會在 Azure 通訊服務 通話中正常開始流動。

如果相機開啟且發生中斷,Azure 通訊服務呼叫可能會或可能不會遺失相機。 如果遺失,相機會標示為關閉,而且用戶必須在相機中斷後重新開啟它。

有時候,麥克風或相機裝置不會準時釋放,這可能會導致原始通話的問題。 例如,如果使用者嘗試在觀看YouTube視訊時取消靜音,或 PSTN 通話是否同時作用中。

如果使用者在 iOS 15.2+ 上,且使用 SDK 1.4.1-beta.1+版,則仍需要取消/啟動視訊步驟才能重新啟動傳出音訊和視訊。

針對 iOS 15.4+,音訊和視訊應該能夠在大部分情況下自動復原。 在某些邊緣案例中,若要取消靜音,應用程式必須呼叫 API 來「取消靜音」(可能是使用者動作的結果),才能復原傳出音訊。

如果用戶嘗試從前相機切換到後置相機,則Safari的iOS會當機並重新整理頁面。

Azure 通訊服務 呼叫 SDK 1.2.3-beta.1 版引進了會影響 iOS Safari 所有呼叫的 Bug。 當用戶嘗試從正面切換相機視訊串流時,就會發生此問題。 切換相機會導致Safari瀏覽器當機並重載頁面。

此問題已修正 Azure 通訊服務 呼叫 SDK 1.3.1-beta.1 版 +

  • iOS Safari 版本:15.1

macOS Ventura Safari 中的屏幕共用 (v16.3 和更低版本)

屏幕共用不適用於 macOS Ventura Safari(v16.3 和更低版本)。 Safari 的已知問題,將在 v16.4+ 中修正。

重新整理頁面並不會立即從使用者的通話中移除使用者

如果使用者在通話中,並決定重新整理頁面,通訊服務媒體服務不會立即從通話中移除此使用者。 它會等候使用者重新加入。 媒體服務逾時之後,使用者就會從通話中移除。

最好是在呼叫時,建置不需要終端使用者重新整理應用程式頁面的用戶體驗。 如果使用者重新整理頁面,請在該使用者返回應用程式之後重複使用相同的通訊服務使用者識別碼。 藉由重新加入相同的使用者標識碼,使用者會以集合中的 remoteParticipants 相同現有物件表示。 從通話中其他參與者的觀點來看,使用者會在重新整理頁面所需的時間期間保留在通話中,最多一兩分鐘。

如果使用者在重新整理之前傳送影片,集合會 videoStreams 保留先前的串流資訊,直到服務逾時並移除它為止。 在此案例中,應用程式可能會決定觀察新增至集合的任何新數據流,並以最高的 id轉譯數據流。

無法從網路上的多個裝置轉譯多個預覽

此問題為已知的限制。 如需詳細資訊,請參閱 呼叫 SDK 概觀

當應用程式在 iOS 或 iPadOS 上執行時,在 Safari 中無法列舉裝置

應用程式無法在 Safari iOS 或 iPadOS 上列舉或選取喇叭裝置(例如 藍牙)。 此問題是這些操作系統的已知限制。

如果您在 macOS 上使用 Safari,您的應用程式就無法透過通訊服務設備管理器列舉或選取喇叭。 在此案例中,您必須透過操作系統選取裝置。 如果您在macOS上使用Chrome,應用程式可以透過通訊服務設備管理員列舉或選取裝置。

  • iOS Safari 版本:15.1

重複切換視訊裝置可能會導致視訊串流暫時停止

在視訊裝置之間切換可能會導致您的視訊串流在從選取的裝置取得串流時暫停。 經常在裝置之間切換可能會導致效能降低。 最好讓開發人員在啟動另一個裝置串流之前停止一個裝置串流。

藍牙 在iOS上的Safari呼叫期間未偵測或聽到耳機麥克風

iOS 上的 Safari 不支援 藍牙 頭戴式裝置。 您的 藍牙 裝置未列在可用的麥克風選項中,如果您嘗試在Safari上使用 藍牙,其他參與者將無法聽到您。

此回歸是已知的操作系統限制。 在 macOS 和 iOS/iPadOS 上使用 Safari 時,無法透過通訊服務設備管理器列舉或選取喇叭裝置。 這是因為Safari不支持說話者的列舉或選取。 在此案例中,使用作業系統來更新您的裝置選取專案。

裝置的旋轉可能會產生不良的視訊品質

當使用者輪替裝置時,此動作可能會降低串流視訊的品質。

此問題會在下列環境中發生:

  • 受影響的裝置:Google Pixel 5、Google Pixel 3a、Apple iPad 8 和 Apple iPad X
  • 用戶端連結庫:呼叫 (JavaScript)
  • 瀏覽器:Safari、Chrome
  • 操作系統:iOS、Android

相機 切換會使屏幕凍結

當通訊服務使用者使用 JavaScript 呼叫 SDK 加入呼叫時,然後選取相機切換按鈕時,UI 可能會變得沒有回應。 然後,用戶必須重新整理應用程式,或將瀏覽器推送至背景。

此問題會在下列環境中發生:

  • 受影響的裝置:Google Pixel 4a
  • 用戶端連結庫:呼叫 (JavaScript)
  • 瀏覽器:Chrome
  • 操作系統:iOS、Android

通話處於連線狀態時發生視訊訊號問題

如果使用者在通話處於 連線 狀態時快速開啟和關閉視訊,此動作可能會導致呼叫取得的數據流發生問題。 最好讓開發人員以不需要在通話處於 連線 狀態時開啟和關閉視訊的方式建置應用程式。 下列案例可能會發生降級的視訊效能:

  • 如果使用者以音訊開頭,然後啟動和停止視訊,而通話處於 連線 狀態。
  • 如果使用者以音訊開頭,然後啟動和停止視訊,而通話處於 「大廳 」狀態。

列舉或存取 macOS 和 iOS 上 Safari 的裝置

在某些環境中,您可能會注意到裝置許可權會在一段時間後重設。 在macOS和iOS上,除非取得數據流,否則Safari不會保留很長一段時間的許可權。 解決這項限制最簡單的方式是先呼叫 DeviceManager.askDevicePermission() API,再呼叫設備管理器的裝置列舉 API。 這些列舉 API 包括 DeviceManager.getCameras()DeviceManager.getSpeakers()DeviceManager.getMicrophones()。 如果許可權存在,使用者就不會看到任何內容。 如果許可權不存在,系統會再次提示使用者輸入許可權。

此問題會在下列環境中發生:

  • 受影響的裝置:i 電話
  • 用戶端連結庫:呼叫 (JavaScript)
  • 瀏覽器:Safari
  • 操作系統:iOS

轉譯遠程參與者影片的延遲

在進行中的群組通話期間,假設 使用者 A 傳送視訊,然後 使用者 B 加入通話。 有時候,使用者 B 不會從使用者 A 看到視訊,或使用者 A 的視訊會在長時間延遲後開始轉譯。 網路環境設定問題可能會導致此延遲。 如需詳細資訊,請參閱 網路建議

在呼叫期間使用第三方連結庫可能會導致音訊遺失

如果您在應用程式內個別使用 getUserMedia ,音訊串流就會遺失。 音訊串流遺失,因為第三方連結庫會從 Azure 通訊服務 媒體櫃接管裝置存取權。

  • 請勿在呼叫期間於內部使用 getUserMedia API 的第三方連結庫。
  • 如果您仍然需要使用第三方連結庫,復原音訊串流的唯一方法是變更選取的裝置(如果使用者有多個),或重新啟動通話。

此問題會在下列環境中發生:

  • 瀏覽器:Safari
  • 操作系統:iOS

此問題的原因可能是從相同裝置取得您自己的串流有發生競爭條件的副作用。 從其他裝置取得串流可能會導致使用者進入USB/IO頻寬不足,而 sourceUnavailableError 速率飛漲。

過度使用某些 API,例如靜音/取消靜音會導致 Azure 通訊服務 基礎結構的節流

由於靜音/取消靜音 API 呼叫,Azure 通訊服務 基礎結構會通知其他參與者呼叫叫用靜音/取消靜音的本機參與者音訊狀態,讓通話中的參與者知道誰是靜音/未靜音。 在 Azure 通訊服務 基礎結構中,會封鎖過度使用靜音/取消靜音。 如果參與者(或代表參與者)嘗試在30秒滾動視窗中連續靜音/取消靜音,就會發生節流。

呼叫自動化 API

下列限制是通訊服務呼叫自動化 API 中的已知問題:

  • 伺服器應用程式目前唯一支援的驗證是使用 連接字串。

  • 只在相同通訊服務資源的實體之間進行呼叫。 跨資源通訊遭到封鎖。

  • 不允許 Microsoft Teams 租使用者與通訊服務使用者或伺服器應用程式實體之間的呼叫。

  • 如果應用程式撥出至兩個或多個 PSTN 身分識別,然後結束通話,則其他 PSTN 實體之間的呼叫會卸除。

下列各節提供與呼叫原生和原生 UI SDK Azure 通訊服務 相關聯之已知問題的相關信息。

Android API 模擬器

在Android 5.0(API層級 21) 和Android 5.1(API 層級 22) 上使用Android API 模擬器時,預期會有一些損毀。

Android Trouter 模組衝突

當 Android 聊天和通話 SDK 位於相同的應用程式中時,聊天 SDK 的即時通知功能無法運作。 您可能會收到相依性解決問題。

當我們處理解決方案時,您可以在應用程式的build.gradle檔案中新增下列相依性資訊,並改為輪詢 GetMessages API 以顯示傳入訊息給使用者,以關閉即時通知功能。

Java

 implementation ("com.azure.android:azure-communication-chat:1.0.0") {
     exclude group: 'com.microsoft', module: 'trouter-client-android'
 }
 implementation 'com.azure.android:azure-communication-calling:1.0.0'

注意:如果應用程式嘗試觸碰任何通知 API,例如 chatAsyncClient.startRealtimeNotifications()chatAsyncClient.addEventHandler(),將會發生運行時錯誤。

iOS 進行中的影片圖片圖片 (PiP)

應用程式進入背景時,內送視訊會停止。 如果應用程式在前景,影片會正確轉譯。

UI 程式庫

您可以遵循 GitHub 存放庫中的已知問題 Wiki 頁面。