リリースノート¶
- 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]
SoraMediaChannelにsetAudioRecordingPausedを追加しました[ADD] 音声データを音声トラックごとにコールバックで受け取るためのインターフェースである
AudioTrackSinkを追加しました[ADD]
AudioTrackに AudioTrackSink を関連付けるためのメソッドを追加しましたaddSinkAudioTrack と AudioTrackSink を関連付けるためのメソッドです
removeSinkAudioTrack と 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)を追加しましたこれにより、Sora から切断された際の理由を詳細に取得できるようになりました
詳細は Sora からの切断理由を取得できる onClose の追加 を参照してください
破壊的変更¶
シグナリング type: connect メッセージの
multistreamを自動で true に設定する仕様を廃止しましたWebSocket が Sora から切断された際に受信したステータスコードが 1000 以外の場合でも onError を呼び出さないように変更しました
SoraMediaOption.videoCodecが未設定の場合のデフォルト動作を変更しました詳細は SoraMediaOption.videoCodec 未設定時の動作変更 を参照してください
SoraMediaOption.audioCodecが未設定の場合のデフォルト動作を変更しました詳細は SoraMediaOption.audioCodec 未設定時の動作変更 を参照してください
SoraMediaChannel.Listener の
onError(SoraMediaChannel, SoraErrorReason)を廃止しました詳細は onError(SoraMediaChannel, SoraErrorReason) を廃止 を参照してください
解像度維持方法の fixedResolution を廃止し、 DegradationPreference を追加しました
詳細は 解像度維持方法の fixedResolution を廃止、 DegradationPreference を追加 を参照してください
非推奨情報¶
SoraMediaChannel.ListenerのonClose(SoraMediaChannel)を非推奨にしました今後は
onClose(SoraMediaChannel, SoraCloseEvent)を利用してください移行方法は Sora からの切断理由を取得できる onClose の追加 を参照してください
変更履歴¶
[CHANGE]
CameraCapturerFactory初期化時の引数fixedResolutionを廃止しましたこれまでは
CameraCapturerFactory.createの引数fixedResolutionに true を指定することにより送信する映像の解像度維持をすることができていましたが、この仕様を廃止しました。代替の機能として、
SoraMediaOption.degradationPreferenceを追加しました
[CHANGE] connect メッセージの
multistreamを自動で true に設定する仕様を廃止しましたSoraMediaOption.enableSpotlightを設定すると、内部で multistream を true に設定していましたが、この仕様を廃止しました以下の設定の組み合わに応じて自動で multistream を true に設定していましたが、この仕様を廃止しました
enableAudioDownstreamenableVideoDownstreamenableAudioUpstreamenableVideoUpstream
[CHANGE]
SignalingChannelImplのWebSocketListener.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.videoCodecにSoraVideoOption.Codec.VP9を設定する必要があります
[CHANGE]
SoraMediaOption.audioCodecが未設定の場合の動作変更これまでは
SoraMediaOption.audioCodecが未設定の場合、connect メッセージのaudio.codec_typeにデフォルトでOPUSが設定され、送信されていました今回の変更により、未設定の場合は
audio.codec_typeを送信しなくなりました未設定の場合、Sora 側でデフォルトのオーディオコーデックとして
OPUSが設定されますSoraMediaOption.audioCodecが未設定であり、かつSoraMediaOption.audioOption.opusParamsを設定している場合は破壊的変更の影響を受けるため、明示的にSoraMediaOption.audioCodecにSoraAudioOption.Codec.OPUSを設定する必要があります
[CHANGE]
SoraMediaChannel.ListenerのonError(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.ListenerのonClose(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]
SoraMediaOptionにdegradationPreferenceを追加しましたクライアント側の状況により設定した解像度やフレームレートを維持できなくなった場合にどのように質を下げるか制御できるオプションです
オプション追加前よりデフォルトの挙動で動作していたため互換性に影響はありません
[ADD] サイマルキャストの映像におけるエンコーディングパラメーター
scaleResolutionDownToを追加しましたscaleResolutionDownTo の詳細については Sora のドキュメントの サイマルキャスト機能 を参照してください
[ADD] Sora から DataChannel シグナリングを切断する際に
"type": "close"メッセージを受信する機能を追加するDataChannel シグナリングが有効、かつ
ignore_disconnect_websocketが true、かつ Sora の設定でdata_channel_signaling_close_messageが有効な場合に受信可能です受信したメッセージは
SoraCloseEventとしてonClose(SoraMediaChannel, SoraCloseEvent?)に通知されます
[ADD]
SoraMediaOptionにsoftwareVideoEncoderOnlyを追加しました映像配信時に端末のハードウェアエンコーダーを使わず、ソフトウェアエンコーダーのみで送信するためのオプションです
デフォルトは 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: switchedとtype: 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 に以下の項目を追加しました
versionsimulcastMulticodecspotlightchannelIdsessionIdaudioaudioCodecTypeaudioBitRatevideovideoCodecTypevideoBitRate
[UPDATE] NotificationMessage に以下の項目を追加しました
timestampspotlightNumberfailedConnectionIdcurrentStatepreviousState
[ADD] 転送フィルター機能の設定を表すクラス
SoraForwardingFilterOptionにnameとpriorityを追加しました[ADD] 転送フィルターをリスト形式で指定するためのプロパティを追加しました
[FIX] SoraMediaChannel の
signalingMetadataとsignalingNotifyMetadataの Map オブジェクトに value が null のフィールドを設定した場合、そのフィールドが connect メッセージに含まれない問題を修正しましたsignalingMetadataとsignalingNotifyMetadataに設定する情報はユーザが任意に設定する項目であり value 値が null の情報も送信できるようにする必要がありましたが Gson は JSON シリアライズ時にデフォルトで null フィールドを無視するため、null を持つフィールドは省略されていました今後は value 値が null の情報も送信されます。値を送信したくない場合は Map オブジェクトに含めないようにしてください