リリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2026.1.0¶
- 日付:
2026-02-20
- 対応 Sora:
2025.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m144.7559.2.2
ハイライト¶
- 音声と映像のミュート機能を追加しました
- 詳細は ミュート機能 をご確認ください
- 音声データを音声トラックごとにコールバックで受け取るためのインターフェースである
RTCAudioTrackSinkを追加しました- 詳細は 受信した音声データを取得する をご確認ください
- RPC 機能に対応しました
- 詳細は RPC 機能 をご確認ください
MediaChannelに libwebrtc の統計情報を取得するgetStatsメソッドを追加しました- 詳細は 統計情報 をご確認ください
非推奨情報¶
Configuration.simulcastRidを非推奨にしました- 2027 年 12 月リリースの Sora にて、シグナリング接続時の
simulcast_ridが廃止予定であるため非推奨にしました - 移行先は
Configuration.simulcastRequestRidです
- 2027 年 12 月リリースの Sora にて、シグナリング接続時の
変更履歴¶
- [UPDATE] WebRTC m144.7559.2.2 に上げました
- [UPDATE]
PeerChannel.initializeAudioInputでの音声入力初期化時にマイク入力をミュートするか設定できるようにしました - [UPDATE]
VideoHardMuteActorでの映像ハードミュート解除時に、カメラキャプチャ未起動なら開始するようにしました - [UPDATE]
StatisticsとStatisticsEntryを API リファレンスに公開しました - [UPDATE]
Configuration.simulcastRidを非推奨にしました- 移行先は
Configuration.simulcastRequestRidです
- 移行先は
- [ADD]
Configurationに接続確立時のマイク入力を有効にするか設定できるinitialMicrophoneEnabledを追加しました- 接続時に音声ハードミュートを行うために利用できます
- [ADD]
Configurationに接続確立時にカメラ初期化を行わない設定initialCameraEnabledを追加しました- 接続時に映像ハードミュートを行うために利用できます
- [ADD]
MediaChannelに音声ハードミュートを有効化/無効化するメソッドsetAudioHardMuteを追加しました - [ADD]
MediaChannelに音声ソフトミュートを有効化/無効化するメソッドsetAudioSoftMuteを追加しました - [ADD]
MediaChannelに映像ハードミュートを有効化/無効化するメソッドsetVideoHardMuteを追加しました - [ADD]
MediaChannelに映像ソフトミュートを有効化/無効化するメソッドsetVideoSoftMuteを追加しました - [ADD]
MediaChannelに libwebrtc の統計情報を取得するgetStatsメソッドを追加しました - [ADD]
RTCAudioTrackから音声データを受け取るためのコールバックプロトコルRTCAudioTrackSinkを追加しました - [ADD]
MediaStreamにRTCAudioTrackSinkをRTCAudioTrackと関連付ける / 関連付けを解除するためのメソッドを追加しました- 関連付けるためのメソッド:
addAudioTrackSink(_ sink: RTCAudioTrackSink) - 関連付けを解除するためのメソッド:
removeAudioTrackSink(_ sink: RTCAudioTrackSink)
- 関連付けるためのメソッド:
- [ADD] シグナリング接続時に視聴するストリームの rid を指定する
Configuration.simulcastRequestRid: SimulcastRequestRidを追加しました- rid を指定できる値の列挙型として
SimulcastRequestRidを追加しました - デフォルト値の
unspecifiedの場合は、シグナリングパラメーターにsimulcast_request_ridを含めません - この設定は role が sendrecv または recvonly の場合、かつ simulcast が true の場合にのみ有効です
- rid を指定できる値の列挙型として
- [ADD] サイマルキャストの rid を表す汎用型
Rid列挙型を追加しました - [ADD] RPC 機能を追加しました
SignalingOfferにrpcMethods: [String]?を追加しましたMediaChannelにrpcメソッドを追加しました- RPC メソッドを定義するための
RPCMethodProtocolプロトコルを追加しました RPCMethodProtocolに準拠した以下の型を追加しましたRequestSimulcastRidRequestSpotlightRidResetSpotlightRidPutSignalingNotifyMetadataPutSignalingNotifyMetadataItem
- RPC エラー応答の詳細を表す
RPCErrorDetail構造体を追加しました - RPC 成功応答を表す
RPCResponse<Result>ジェネリック構造体を追加しました SoraErrorに RPC 関連のエラーケースを追加しました
2025.2.0¶
- 日付:
2025-09-18
- 対応 Sora:
2025.1.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m138.7204.0.3
ハイライト¶
MediaChannelHandlersにonDisconnect: ((SoraCloseEvent) -> Void)?を追加しましたonDisconnect: ((Error?) -> Void)?はonDisconnectLegacyという名前に変更され、非推奨になりました- 既存の
onDisconnect: ((Error?) -> Void)?では異常発生時のエラーは取得できても、正常に終了した際の理由などを取得することができませんでした onDisconnect: ((SoraCloseEvent) -> Void)?を利用することで、正常に終了した際のステータスコードと理由も取得できるようになりますonDisconnect: ((Error?) -> Void)?からの移行については onDisconnect: ((Error?) -> Void)? から onDisconnect: ((SoraCloseEvent) -> Void)? への移行 をご確認ください
破壊的変更¶
- CocoaPods でのライブラリ提供を廃止しました
- シグナリング type: connect メッセージの
multistreamを自動で true に設定する仕様を廃止しました MediaChannelHandlersのonDisconnect: ((Error?) -> Void)?をonDisconnectLegacyという名前に変更し、非推奨にしましたonDisconnect: ((SoraCloseEvent) -> Void)?への移行を推奨しますonDisconnectLegacy: ((Error?) -> Void)?は2027 年中に削除予定です- 移行については onDisconnect: ((Error?) -> Void)? から onDisconnect: ((SoraCloseEvent) -> Void)? への移行 をご確認ください
非推奨情報¶
Configuration.multistreamEnabledを非推奨にしました- Sora 2025.1.0 でレガシーストリームが廃止されたため、この項目を非推奨にしました
- 合わせて
Configurationのイニシャライザの multistreamEnabled をオプション引数にし、デフォルト値を nil に変更しました - 2027 年中に削除予定です
変更履歴¶
- [CHANGE] CocoaPods でのライブラリ提供を廃止しました
- 詳細は CocoaPods での提供終了について をご確認ください
- [CHANGE] connect メッセージの
multistreamを自動で true に設定する仕様を廃止しました- Configuration.role に .sendrecv を指定している場合に multistream を true に設定する仕様を廃止しました
- Configuration.spotlightEnabled に .enabled を指定している場合に multistream を true に設定する仕様を廃止しました
- Sora iOS SDK 2025.2.0 からは、connect メッセージには Configuration.multistreamEnabled に指定した値がそのまま設定されます
- 今後は Configuration.role に .sendrecv を指定している場合または Configuration.spotlightEnabled に .enabled を指定している場合に Configuration.multistreamEnabled に false を指定すると接続エラーになります
- [CHANGE]
MediaChannelHandlersのonDisconnect: ((Error?) -> Void)?をonDisconnectLegacyという名前に変更し、非推奨にしました - [UPDATE] WebRTC m138.7204.0.3 に上げました
- [UPDATE]
Configuration.multistreamEnabledを非推奨にしましたConfigurationのイニシャライザの multistreamEnabled をオプション引数にし、デフォルト値を nil に変更しました- Sora のデフォルト挙動に合わせる場合は、
Configurationのイニシャライザで mutlistreamEnabled を指定しないようにしてください
- [UPDATE] Sora との接続が終了したときの状態を表す
SoraCloseEvent(enum) を追加しました - [UPDATE]
MediaChannelHandlersにonDisconnect: ((SoraCloseEvent) -> Void)?を追加しましたonDisconnect: ((Error?) -> Void)?からの移行については onDisconnect: ((Error?) -> Void)? から onDisconnect: ((SoraCloseEvent) -> Void)? への移行 をご確認ください
- [ADD] サイマルキャストの映像のエンコーディングパラメーター
scaleResolutionDownToを追加しました- scaleResolutionDownTo の詳細については Sora のドキュメントの サイマルキャスト機能 をご確認ください
- [ADD] Sora から DataChannel シグナリングを切断する際に
"type": "close"メッセージを受信する機能を追加しました- DataChannel シグナリングが有効、かつ
ignore_disconnect_websocketが true、かつ Sora の設定でdata_channel_signaling_close_messageが有効な場合に受信することができます
- DataChannel シグナリングが有効、かつ
- [FIX] Sora から切断された場合の切断処理を修正し適切なエラーを
MediaChannelHandlers.onDisconnectで受け取ることができるようになりました- Sora iOS SDK 2025.1.1 までは Sora から Close Frame を受け取ったり、ネットワークエラーが起きたりしても、WebSocket メッセージ受信失敗に起因する
SoraError.webSocketErrorしか受信できませんでしたが、以下の内容を受信できるようになりました- Sora から Close Frame を受け取った場合のステータスコードと理由
- ステータスコードが 1000 で正常に切断された場合も
MediaChannelHandlers.onDisconnectで通知されます
- ステータスコードが 1000 で正常に切断された場合も
- ネットワークエラーや Sora がダウンした場合のエラー内容
- Sora から Close Frame を受け取った場合のステータスコードと理由
- いままでは WebSocket メッセージ受信失敗時のエラーである
The operation couldn’t be completed. Socket is not connectedというエラーしか返せていなかった状態が改善されました - この変更によって
MediaChannelHandlers.onDisconnectで受信するメッセージの内容は変わりますが、コールバックが発火するタイミングに変更はありません
- Sora iOS SDK 2025.1.1 までは Sora から Close Frame を受け取ったり、ネットワークエラーが起きたりしても、WebSocket メッセージ受信失敗に起因する
2025.1.3¶
- 日付:
2025-07-28
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132.6834.5.2
- [FIX] Sora の設定が、DataChannel 経由のシグナリングの設定、かつ、WebSocket の切断を Sora への接続が切断したと判断しない設定の場合に、SDP 再交換に失敗することがある問題を修正しました
- WebSocket 経由から DataChannel 経由へのシグナリング切替時に
type: switchedとtype: re-offerをほぼ同時に受信した際、type: re-answerを WebSocket 経由で送信する前に WebSocket を切断してしまいtype: re-answerの送信に失敗することがあるためです - DataChannel 経由へのシグナリング切替後でも、まだ WebSocket 経由で送信中のメッセージが存在する可能性を考慮し、余裕を持って切断するために 10 秒の待機時間を設けるようにしました
- WebSocket 経由から DataChannel 経由へのシグナリング切替時に
2025.1.2¶
- 日付:
2025-05-07
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132.6834.5.2
- [FIX] マルチストリーム利用時に SDP 再ハンドシェイク中に SDK が終了処理をした際に EXC_BAD_ACCESS (不正なメモリアクセス) によりクラッシュする問題を修正しました
2025.1.1¶
- 日付:
2025-01-23
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132.6834.5.2
- [FIX] WebRTC m132.6834.5.2 にアップデートしました
- Apple 非公開 API を利用していたため、App Store Connect へのアップロードに失敗する問題に対応しました
2025.1.0¶
- 日付:
2025-01-21
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132.6834.5.1
- [UPDATE] WebRTC m132.6834.5.1 にアップデートしました
- [UPDATE] システム条件を変更しました
- IPHONEOS_DEPLOYMENT_TARGET を 14.0 に変更
- SwiftPM の platforms の設定を v14 に変更
- CocoaPods の platform の設定を 14.0 に変更
- [UPDATE]
SignalingOfferに以下の項目を追加しましたversionsimulcastMulticodecspotlightchannelIdsessionIdaudioaudioCodecTypeaudioBitRatevideovideoCodecTypevideoBitRate
- [UPDATE]
SignalingNotifyに以下の項目を追加しましたtimestampspotlightNumberfailedConnectionIdcurrentStatepreviousState
- [ADD]
ForwardingFilterに name と priority を追加しました - [ADD] シグナリング connect 時にリスト形式の転送フィルターを設定するための項目を追加しました
ConfigurationとSignalingConnectにforwardingFiltersを追加しました
2024.3.0¶
- 日付:
2024-09-06
- 対応 Sora:
2024.1.0 以降
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m127.6533.1.1
- [CHANGE]
MediaChannelConfigurationを非推奨にしました- SDK 内部では利用していないため非推奨としています
- 現在ご利用の方はこのクラス定義をご自分のプロジェクトにコピーしてご利用ください
- [UPDATE] libwebrtc
m127.6533.1.1にアップデートしました - [UPDATE] SignalingOffer に
simulcast: Bool?を追加しました - [UPDATE] システム条件を変更しました
- macOS 14.6.1 以降
- Xcode 15.4
- WebRTC SFU Sora 2024.1.0 以降
- [FIX] SignalingConnect の
metadata,signaling_notify_metadataが未設定 (nil) の場合に{}として送信されてしまう問題を修正しました- 未設定の場合は項目が含まれて送信されないように修正しました
- この修正により、
Configuration.signalingConnectMetadataの値が未指定の場合は Sora の認証ウェブフックにmetadata,authn_metadataの項目が送信されなくなります - この修正により、
Configuration.signalingConnectNotifyMetadataの値が未指定の場合は Sora のイベントウェブフックにmetadataの項目が送信されなくなります - 修正前の動作を維持して
{}を送信したい場合は、Configuration.signalingConnectMetadataおよびConfiguration.signalingConnectNotifyMetadataに中身が空の Encodable プロトコルに準拠したオブジェクトを指定してください - 例)
configuration.signalingConnectMetadata = [String: String]()
- [FIX] 認証ウェブフック成功時に払い出された
simulcastの値が反映されない不具合に対応しました - [FIX] スポットライト機能が有効の条件で
WrapperVideoEncoderFactoryのサイマルキャスト機能が有効になる不具合を修正しました- 利用上に不具合はありませんが、意図しないエンコーダーの設定になっていたため修正しました
- [FIX] TURN URI に IPv6 アドレスが設定されている場合に接続ができない不具合を修正しました
- TURN URI 文字列に対して、内部処理で意図しないエスケープ処理が行われていた問題を修正しました
2024.2.0¶
- 日付:
2024-04-23
- 対応 Sora:
2023.2.0 以降
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m122.6261.1.0
- [CHANGE] シグナリング connect メッセージの libwebrtc に含まれるバージョン文字列を変更しました
- Android とフォーマットを統一しました
- "Shiguredo-build M122 (M122.1.0 6b419a0)" から "Shiguredo-build M122 (122.6261.1.0 6b419a0)" に変更されます
- [UPDATE] libwebrtc を m122.6261.1.0 に更新しました
- libwebrtc の AV1 デコード機能の脆弱性対応が含まれています
- [UPDATE] システム条件を変更しました
- macOS 14.4.1 以降
- Xcode 15.3
- Swift 5.10
2024.1.0¶
- 日付:
2024-02-26
- 対応 Sora:
2023.2.0 以降
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m121.6167.4.0
- [CHANGE] Sora 2022.1.0 にて
metadata_listが廃止されたのに伴い、SignalingNotifyのmetadataListを削除しました- 代わりに
SignalingNotifyのdataで値を取得できます
- 代わりに
- [CHANGE] VideoView のバックエンドを RTCEAGLVideoView から RTCMTLVideoView に変更しました
- libwebrtc のアップデートに伴い
RTCEAGLVideoViewがdeprecatedになったことに伴う修正です
- libwebrtc のアップデートに伴い
- [UPDATE] システム条件を変更しました
- macOS 14.3.1 以降
- WebRTC SFU Sora 2023.2.0 以降
- CocoaPods 1.15.2 以降
- Xcode 15.2
- Swift 5.9.2
- [UPDATE] CameraVideoCapturer のログを出力するようにしました
- [UPDATE] libwebrtc のバージョンを 121.6167.4.0 に更新しました
- HEVC (H.265) 対応パッチを含んだバージョンです
- [UPDATE] 解像度に qHD (960x540) を追加しました
- [UPDATE] CocoaPods を v1.15.2 に更新しました
- [UPDATE] Sora 2023.2.0 で対応した
ForwardingFilterのversionとmetadataを追加しました - [ADD]
VideoCodecにハードウェアアクセラレーターを利用した HEVC(H.265) の映像を送受信できるようにするコーデック指定H265を追加しました - [ADD] リソースの逼迫により、送信する映像の品質が維持できない場合に、解像度やフレームレートのどちらを維持するかを指定できる設定
degradationPreferenceをWebRTCConfigurationに追加しました- 詳細については CPU やネットワーク帯域等逼迫時における映像品質優先項目の設定 をご確認ください
- [FIX]
ForwardingFilterのactionを未指定にできるように修正しました - [FIX]
SignalingNotifyに項目を追加しましたsessionIdkinddestinationConnectionIdsourceConnectionIdrecvConnectionIdsendConnectionIdstreamId
2023.3.1¶
- 日付:
2023-10-24
- 対応 Sora:
2023.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m116.5845.6.1
- [FIX] AVCaptureDevice.Format の選択時にフレームレートを考慮するように修正しました
- フレームレートに 60 を設定しても、 AVFrameRateRange が 1-30 の AVCaptureDevice.Format が選択されてしまうケースがあったため修正しました
- 修正前は、カメラから同じ解像度の AVCaptureDevice.Format が複数取得された場合、最初に解像度が一致した AVCaptureDevice.Format を選択しており、フレームレートが考慮されていなかったことが原因です
2023.3.0¶
- 日付:
2023-09-13
- 対応 Sora:
2023.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m116.5845.6.1
- [CHANGE]
@available(*, unavailable)アトリビュートの項目を削除しました- Swift 5.9 以降
@available(*, unavailable)アトリビュートが禁止されたことによる対応です - 削除した項目を利用していた場合ビルドエラーが発生するため 利用不可項目の削除について を参照して対応をお願いします
- Swift 5.9 以降
- [CHANGE]
@available(*, deprecated, ... )としていた非推奨項目を削除する- 非推奨であった項目について削除に移行しました
- 削除した項目を利用していた場合ビルドエラーが発生するため 利用不可項目の削除について を参照して対応をお願いします
- [CHANGE]
PeerChannel.swiftとSignalingChannel.swiftのonConnectHandlerをonConnectに置き換えました- 既に他のファイルでは名称変更を行なっていたがこのファイルのみ変更が行われていなかったため対応する
- [UPDATE] WebRTC 116.5845.6.1 に対応しました
- [FIX]
MediaChannelのconnectionCount,publisherCount,subscriberCountに値が設定されない不具合を修正しました- Sora のシグナリングメッセージ、 channel_upstream_connections, channel_downstream_connections が廃止された契機で値が設定されなくなっていました
- Sora のシグナリングメッセージ、channel_sendrecv_connections, channel_sendonly_connections, channel_recvonly_connections, channel_connections を元に値を設定するよう修正
2023.2.0¶
- 日付:
2023-08-01
- 対応 Sora:
2023.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m115.5790.7.0
- [UPDATE] WebRTC 115.5790.7.0 に対応しました
- [UPDATE] システム条件を変更しました
- macOS 13.4.1 以降
- WebRTC SFU Sora 2023.1.0 以降
- Xcode 14.3.1
- Swift 5.8.1
- CocoaPods 1.12.1 以降
- [ADD] サイマルキャストを VP9 / AV1 で利用できるようにしました
- [ADD] 接続時に転送フィルターを指定できるようにしました
ConfigurationにforwardingFilterを追加しました- 詳細は 転送フィルターの設定 をご確認ください
- [ADD] 接続時に映像コーデックパラメーターを指定できるようにしました
ConfigurationにvideoVp9Params,videoAv1Params,videoH264Paramsを追加しました- 詳細は 映像コーデックパラメーターの設定 をご確認ください
2023.1.0¶
- 日付:
2023-04-07
- 対応 Sora:
2022.2.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m112.5615.1.0
- [UPDATE] WebRTC 112.5615.1.0 に対応しました
- [UPDATE] システム条件を変更しました
- macOS 13.3 以降
- Xcode 14.3
- Swift 5.8
- WebRTC SFU Sora 2022.2.0 以降
- [UPDATE]
CameraSettingsのResolutionにuhd2160p,uhd3024pを追加しました - [ADD]
ConfigurationにaudioStreamingLanguageCodeを追加しました - [FIX] m107.5304.4.1 利用時、シグナリング時に EXEC_BAD_ACCESS が発生する事象を修正しました
RTCPeerConnection.offer()に渡すブロック内でRTCPeerConnection.close()を呼んでいるのが原因だと思われるため、 async/await を使って offer() の終了を待ってから close() するよう修正しましたRTCPeerConnection.offer()の実行が非同期で行われるようになりましたが、NativePeerChannelFactory.createClientOfferSDP()の用途では問題はありません