リリースノート

CHANGE

後方互換性のない変更

UPDATE

後方互換性がある変更

ADD

後方互換性がある追加

FIX

バグ修正

2025.3.0

日時:

2025-11-11

対応 Sora:

2025.1.0 以降

対応 Android:

5.0 以降

対応 libwebrtc:

142.7444.2.1

ハイライト

  • SoraMediaChannel に、音声ハードミュートを有効にする setAudioRecordingPaused を追加しました

    • Android 端末のプライバシーインジケーターを消灯できる音声ミュートを実装できるようになりました

    • 詳細は ミュート機能 をご確認ください

  • 音声データを音声トラックごとにコールバックで受け取るためのインターフェースである AudioTrackSink を追加しました

変更履歴

  • [UPDATE] libwebrtc を 142.7444.2.1 にアップデートしました

  • [UPDATE] Sora Android SDK のビルドで利用する Kotlin バージョンを 2.0.20 にアップデートしました

  • [ADD] SoraMediaChannelsetAudioRecordingPaused を追加しました

  • [ADD] 音声データを音声トラックごとにコールバックで受け取るためのインターフェースである AudioTrackSink を追加しました

  • [ADD] AudioTrack に AudioTrackSink を関連付けるためのメソッドを追加しました

    • addSink

      • AudioTrack と AudioTrackSink を関連付けるためのメソッドです

    • removeSink

      • AudioTrack と AudioTrackSink の関連付けを解除するためのメソッドです

2025.2.0

日時:

2025-09-17

対応 Sora:

2025.1.0 以降

対応 Android:

5.0 以降

対応 libwebrtc:

m138.7204.0.5

ハイライト

  • SoraMediaChannel.Listener に、Sora から切断された際のステータスコードと理由を取得できる onClose(SoraMediaChannel, SoraCloseEvent) を追加しました

破壊的変更

非推奨情報

変更履歴

  • [CHANGE] CameraCapturerFactory 初期化時の引数 fixedResolution を廃止しました

    • これまでは CameraCapturerFactory.create の引数 fixedResolution に true を指定することにより送信する映像の解像度維持をすることができていましたが、この仕様を廃止しました。

    • 代替の機能として、SoraMediaOption.degradationPreference を追加しました

  • [CHANGE] connect メッセージの multistream を自動で true に設定する仕様を廃止しました

    • SoraMediaOption.enableSpotlight を設定すると、内部で multistream を true に設定していましたが、この仕様を廃止しました

    • 以下の設定の組み合わに応じて自動で multistream を true に設定していましたが、この仕様を廃止しました

      • enableAudioDownstream

      • enableVideoDownstream

      • enableAudioUpstream

      • enableVideoUpstream

  • [CHANGE] SignalingChannelImplWebSocketListener.onClosed の処理において、WebSocket のステータスコードが 1000 以外の場合でも onError を呼び出さないように変更しました

    • これまでの実装では、onError のコールバック呼び出しが定義されていましたが、実際には onClosing が実行された時点で SignalingChannelImpl の listener の参照が削除されるため、onError が確実に呼び出される保証はありませんでした

    • 今回の変更により、onClose においてステータスコードと切断理由を取得できるようになりエラーハンドリングが可能となったため、onError の呼び出しは不要となりました

    • これにより、onError はネットワーク切断などによる異常終了のみを通知する仕様となります

    • もし、ステータスコード 1000 以外の Sora からの切断を onError によって検知する実装を行っていた場合、今後は onClose のステータスコードを参照し、適切な処理を行う必要があります

  • [CHANGE] SoraMediaOption.videoCodec が未設定の場合の動作変更

    • これまでは、SoraMediaOption.videoCodec が未設定の場合、connect メッセージの video.codec_type にデフォルトで VP9 が設定され、送信されていました

    • 今回の変更により、未設定の場合は video.codec_type を送信しなくなりました

    • 未設定の場合、Sora 側でデフォルトのビデオコーデックとして VP9 が設定されます

    • SoraMediaOption.videoCodec が未設定であり、かつ SoraMediaOption.videoVp9Params を設定している場合は破壊的変更の影響を受けるため、明示的に SoraMediaOption.videoCodecSoraVideoOption.Codec.VP9 を設定する必要があります

  • [CHANGE] SoraMediaOption.audioCodec が未設定の場合の動作変更

    • これまでは SoraMediaOption.audioCodec が未設定の場合、connect メッセージの audio.codec_type にデフォルトで OPUS が設定され、送信されていました

    • 今回の変更により、未設定の場合は audio.codec_type を送信しなくなりました

    • 未設定の場合、Sora 側でデフォルトのオーディオコーデックとして OPUS が設定されます

    • SoraMediaOption.audioCodec が未設定であり、かつ SoraMediaOption.audioOption.opusParams を設定している場合は破壊的変更の影響を受けるため、明示的に SoraMediaOption.audioCodecSoraAudioOption.Codec.OPUS を設定する必要があります

  • [CHANGE] SoraMediaChannel.ListeneronError(SoraMediaChannel, SoraErrorReason) を廃止しました

    • onError(SoraMediaChannel, SoraErrorReason) を呼び出していた箇所は onError(SoraMediaChannel, SoraErrorReason, String) に置き換えられます

    • String にはエラーの詳細情報が渡されます

      • 詳細がない場合は空文字列が渡されます

  • [UPDATE] libwebrtc を 138.7204.0.5 にアップデートしました

  • [UPDATE] Sora 2025.1.0 でのレガシーストリーム廃止に伴い不要となる設定を非推奨に変更しました

    • Sora 2025.1.0 以降は connect メッセージの multistream 項目が廃止されました

    • これに合わせ、SDK でも multistream を自動で true に設定する挙動を廃止しました(関連: シグナリングの "type": "connect" メッセージの multistream を自動で true に設定する仕様を廃止

    • 非推奨にした設定

      • SoraMediaOption.enableMultistream: これまで multistream: true を明示するための設定でしたが、Sora 2025.1.0 以降は非推奨です

      • SoraMediaOption.enableLegacyStream: これまで ``multistream: false``(レガシーストリーム)を明示するための互換設定でしたが、レガシーストリーム自体が廃止されたため非推奨です

  • [UPDATE] SoraMediaChannel.Listener に、Sora から切断された際のステータスコードと理由を取得できる onClose(SoraMediaChannel, SoraCloseEvent) を追加しました

    • Sora から切断された際に通知されるイベントである SoraCloseEvent を追加しました

    • WebSocket シグナリング切断時に通知されるイベントである SignalingChannelCloseEvent を追加しました

    • 以下の場合に、Sora から切断された際に SoraCloseEvent が通知されます:

      • SoraMediaChannel.disconnect() を呼び出した場合

      • WebSocket 経由のシグナリングを利用している場合

      • DataChannel 経由のシグナリングを利用する場合、かつ ignore_disconnect_websocket が true であり、かつ Sora の設定で data_channel_signaling_close_message が有効な場合

  • [UPDATE] SoraMediaChannel.ListeneronClose(SoraMediaChannel) を非推奨にしました

    • 今後は onClose(SoraMediaChannel, SoraCloseEvent) を利用してください

  • [UPDATE] compileSdk と targetSdkVersion を 36 にアップデートしました

  • [UPDATE] Android Gradle Plugin (AGP) を 8.10.1 にアップデートしました

  • [UPDATE] Gradle を 8.11.1 にアップデートしました

  • [UPDATE] 依存ライブラリーのバージョンをアップデートしました

    • org.jetbrains.dokka:dokka-gradle-plugin を 1.9.20 にアップデートしました

    • com.google.code.gson:gson を 2.13.1 にアップデートしました

    • org.ajoberstar.grgit:grgit-gradle を 5.3.2 にアップデートしました

    • org.jetbrains.kotlinx:kotlinx-coroutines-android を 1.9.0 にアップデートしました

    • org.robolectric:robolectric を 4.15.1 にアップデートしました

  • [ADD] SoraMediaOptiondegradationPreference を追加しました

    • クライアント側の状況により設定した解像度やフレームレートを維持できなくなった場合にどのように質を下げるか制御できるオプションです

    • オプション追加前よりデフォルトの挙動で動作していたため互換性に影響はありません

  • [ADD] サイマルキャストの映像におけるエンコーディングパラメーター scaleResolutionDownTo を追加しました

  • [ADD] Sora から DataChannel シグナリングを切断する際に "type": "close" メッセージを受信する機能を追加する

    • DataChannel シグナリングが有効、かつ ignore_disconnect_websocket が true、かつ Sora の設定で data_channel_signaling_close_message が有効な場合に受信可能です

    • 受信したメッセージは SoraCloseEvent として onClose(SoraMediaChannel, SoraCloseEvent?) に通知されます

  • [ADD] SoraMediaOptionsoftwareVideoEncoderOnly を追加しました

    • 映像配信時に端末のハードウェアエンコーダーを使わず、ソフトウェアエンコーダーのみで送信するためのオプションです

    • デフォルトは false であるため互換性に影響はありません

    • true の場合、サイマルキャスト有効時を含めソフトウェアエンコーダーのみでエンコードするようになります

    • 映像の配信が有効な場合に適用されるため、視聴のみの場合は影響ありません

    • videoEncoderFactory を設定している場合は本オプションは無視されます

    • ソフトウェアエンコードは CPU 使用率・発熱・電力消費が増える可能性がありますので注意してください

  • [FIX] SoraMediaChannel.internalDisconnect における SoraMediaChannel.Listener.onClose の呼び出しタイミングを、切断処理の完了後に修正しました

    • 従来は切断処理の完了前に onClose が呼び出されていましたが、 onClose は切断後に通知されるのが望ましいため、切断完了後に呼び出されるよう修正しました

2025.1.1

日時:

2025-08-07

対応 Sora:

2024.2.0 以降

対応 Android:

5.0 以降

対応 libwebrtc:

m132.6834.5.0

  • [FIX] Sora の設定が、DataChannel 経由のシグナリングの設定、かつ、WebSocket の切断を Sora への接続が切断したと判断しない設定の場合に、SDP 再交換に失敗することがある問題を修正しました

    • WebSocket 経由から DataChannel 経由へのシグナリング切替時に type: switchedtype: re-offer をほぼ同時に受信した際、type: re-answer を WebSocket 経由で送信する前に WebSocket を切断してしまい type: re-answer の送信に失敗することがあるためです

    • DataChannel 経由へのシグナリング切替後でも、まだ WebSocket 経由で送信中のメッセージが存在する可能性を考慮し、余裕を持って切断するために 10 秒の待機時間を設けるようにしました

2025.1.0

日時:

2025-01-27

対応 Sora:

2024.2.0 以降

対応 Android:

5.0 以降

対応 libwebrtc:

m132.6834.5.0

  • [UPDATE] libwebrtc を 132.6834.5.0 にアップデートしました

  • [UPDATE] SoraForwardingFilterOption 型の引数を Sora での 2025 年 12 月の廃止に向けて非推奨にしました

  • [UPDATE] OfferMessage に以下の項目を追加しました

    • version

    • simulcastMulticodec

    • spotlight

    • channelId

    • sessionId

    • audio

    • audioCodecType

    • audioBitRate

    • video

    • videoCodecType

    • videoBitRate

  • [UPDATE] NotificationMessage に以下の項目を追加しました

    • timestamp

    • spotlightNumber

    • failedConnectionId

    • currentState

    • previousState

  • [ADD] 転送フィルター機能の設定を表すクラス SoraForwardingFilterOptionnamepriority を追加しました

  • [ADD] 転送フィルターをリスト形式で指定するためのプロパティを追加しました

  • [FIX] SoraMediaChannel の signalingMetadatasignalingNotifyMetadata の Map オブジェクトに value が null のフィールドを設定した場合、そのフィールドが connect メッセージに含まれない問題を修正しました

    • signalingMetadatasignalingNotifyMetadata に設定する情報はユーザが任意に設定する項目であり value 値が null の情報も送信できるようにする必要がありましたが Gson は JSON シリアライズ時にデフォルトで null フィールドを無視するため、null を持つフィールドは省略されていました

    • 今後は value 値が null の情報も送信されます。値を送信したくない場合は Map オブジェクトに含めないようにしてください

© Copyright 2018-2025, Shiguredo Inc. Created using Sphinx 8.2.3