From 4aadb3177fa9fd0a8bf2b17812435f407b4a2611 Mon Sep 17 00:00:00 2001 From: zztkm Date: Tue, 25 Feb 2025 12:06:54 +0900 Subject: [PATCH 1/3] =?UTF-8?q?onClose=20=E3=81=AE=E5=91=BC=E3=81=B3?= =?UTF-8?q?=E5=87=BA=E3=81=97=E3=82=BF=E3=82=A4=E3=83=9F=E3=83=B3=E3=82=B0?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 3 +++ .../jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 3ef28577..37c22b19 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -25,6 +25,9 @@ - @zztkm - [ADD] サイマルキャストの映像のエンコーディングパラメーター `scaleResolutionDownTo` を追加する - @zztkm +- [FIX] `SoraMediaChannel.internalDisconnect` での `SoraMediaChannel.Listener.onClose` の呼び出しタイミングを切断処理がすべて完了したあとに修正する + - 説明には「Sora との接続が切断されたときに呼び出される」と記載していたが、実際には切断処理が完了する前に呼び出していたので、説明に合わせて修正を行った + - @zztkm ## 2025.1.0 diff --git a/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt b/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt index 0344b3f2..8788857a 100644 --- a/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt +++ b/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt @@ -957,9 +957,6 @@ class SoraMediaChannel @JvmOverloads constructor( } compositeDisposable.dispose() - listener?.onClose(this) - listener = null - // アプリケーションで定義された切断処理を実行した後に contactSignalingEndpoint と connectedSignalingEndpoint を null にする contactSignalingEndpoint = null connectedSignalingEndpoint = null @@ -974,6 +971,9 @@ class SoraMediaChannel @JvmOverloads constructor( // 既に type: disconnect を送信しているので、 disconnectReason は null で良い peer?.disconnect(null) peer = null + + listener?.onClose(this) + listener = null } private fun sendDisconnectOverWebSocket(disconnectReason: SoraDisconnectReason) { From ac92a0dde049917d3d6609ff8dd0a28526eb6714 Mon Sep 17 00:00:00 2001 From: zztkm Date: Tue, 25 Feb 2025 12:57:18 +0900 Subject: [PATCH 2/3] =?UTF-8?q?onClose=20=E3=81=A7=E5=8F=82=E7=85=A7?= =?UTF-8?q?=E3=81=95=E3=82=8C=E3=82=8B=E5=8F=AF=E8=83=BD=E6=80=A7=E3=81=AE?= =?UTF-8?q?=E3=81=82=E3=82=8B=E5=A4=89=E6=95=B0=E3=82=92=20null=20?= =?UTF-8?q?=E3=81=AB=E3=81=99=E3=82=8B=E3=82=BF=E3=82=A4=E3=83=9F=E3=83=B3?= =?UTF-8?q?=E3=82=B0=E3=82=92=E8=AA=BF=E6=95=B4=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 3 ++- .../jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 37c22b19..3c925b68 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -26,7 +26,8 @@ - [ADD] サイマルキャストの映像のエンコーディングパラメーター `scaleResolutionDownTo` を追加する - @zztkm - [FIX] `SoraMediaChannel.internalDisconnect` での `SoraMediaChannel.Listener.onClose` の呼び出しタイミングを切断処理がすべて完了したあとに修正する - - 説明には「Sora との接続が切断されたときに呼び出される」と記載していたが、実際には切断処理が完了する前に呼び出していたので、説明に合わせて修正を行った + - 説明には「Sora との接続が切断されたときに呼び出される」と記載していたが、実際には切断処理が完了する前に呼び出していたので、説明に合わせて修正 + - `contactSignalingEndpoint` と `connectedSignalingEndpoint` は onClose で参照される可能性があるため、onClose 実行よりあとに null になるように onClose に合わせて処理順を変更 - @zztkm ## 2025.1.0 diff --git a/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt b/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt index 8788857a..b94cc12b 100644 --- a/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt +++ b/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/SoraMediaChannel.kt @@ -957,10 +957,6 @@ class SoraMediaChannel @JvmOverloads constructor( } compositeDisposable.dispose() - // アプリケーションで定義された切断処理を実行した後に contactSignalingEndpoint と connectedSignalingEndpoint を null にする - contactSignalingEndpoint = null - connectedSignalingEndpoint = null - // 既に type: disconnect を送信しているので、 disconnectReason は null で良い signaling?.disconnect(null) signaling = null @@ -974,6 +970,10 @@ class SoraMediaChannel @JvmOverloads constructor( listener?.onClose(this) listener = null + + // onClose によってアプリケーションで定義された切断処理を実行した後に contactSignalingEndpoint と connectedSignalingEndpoint を null にする + contactSignalingEndpoint = null + connectedSignalingEndpoint = null } private fun sendDisconnectOverWebSocket(disconnectReason: SoraDisconnectReason) { From 4cffa11fd6be7401f03daa9895db8be9447d449b Mon Sep 17 00:00:00 2001 From: zztkm Date: Tue, 25 Feb 2025 14:27:46 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E8=AA=AC=E6=98=8E=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 3c925b68..9c40b532 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -26,7 +26,7 @@ - [ADD] サイマルキャストの映像のエンコーディングパラメーター `scaleResolutionDownTo` を追加する - @zztkm - [FIX] `SoraMediaChannel.internalDisconnect` での `SoraMediaChannel.Listener.onClose` の呼び出しタイミングを切断処理がすべて完了したあとに修正する - - 説明には「Sora との接続が切断されたときに呼び出される」と記載していたが、実際には切断処理が完了する前に呼び出していたので、説明に合わせて修正 + - 切断処理が終了する前に `onClose` を呼び出していたため、切断処理が完了してから呼び出すように修正 - `contactSignalingEndpoint` と `connectedSignalingEndpoint` は onClose で参照される可能性があるため、onClose 実行よりあとに null になるように onClose に合わせて処理順を変更 - @zztkm