古いリリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2022.6.0¶
- 日付:
2022-09-14
- 対応 Sora:
2022.1.1
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m105.5195.0.0
- [CHANGE] bitcode を無効化しました
- libwebrtc 105.5195.0.0 より bitcode が含まれなくなりました。bitcode を無効にしてビルドをする必要があります
- bitcode を含めてアプリケーションをビルドする必要がある場合は一つ前の
2022.5.0をご利用ください
- [CHANGE] 対応アーキテクチャについて x86_64 を廃止しました
- libwebrtc 105.5195.0.0 より macOS x86_64 のビルドが廃止されたことに伴う変更です
- [UPDATE] WebRTC 105.5195.0.0 に対応しました
- [UPDATE] システム条件を変更しました
- macOS 12.6 以降
- Xcode 14.0
- Swift 5.7
- CocoaPods 1.11.3 以降
2022.5.0¶
- 日付:
2022-08-04
- 対応 Sora:
2022.1.1
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m104.5112.8.0
- [UPDATE] WebRTC 104.5112.8.0 に対応しました
- [ADD] 接続時に HTTP プロキシの設定を追加できるようにしました
- 詳細は プロキシ・サーバーの設定 をご確認ください
2022.4.0¶
- 日付:
2022-06-29
- 対応 Sora:
2022.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m103.5060.4.0
- [CHANGE] mid を必須とする対応を行いました
- この修正の結果、 type: offer に mid が含まれない場合は、エラーになります
- 最新版の Sora をご利用の場合は必ず mid が設定されます
- [CHANGE]
Configuration.spotlightEnabled == .enabledの際に、自動的にサイマルキャストを有効化しない変更を行いました- サイマルキャストを有効化する場合は明示的に
Configuration.simulcastEnabled == trueを設定してください - 詳細は 2022.4.0 で実施するスポットライト機能に対する破壊的変更について をご確認ください。
- サイマルキャストを有効化する場合は明示的に
- [UPDATE] システム条件を変更しました
- macOS 12.3 以降
- WebRTC SFU Sora 2022.1 以降
- [UPDATE] WebRTC 103.5060.4.0 に対応しました
- [ADD] Sora の bundle_id に対応しました
Configuration.bundleIdを追加しました
2022.3.0¶
- 日付:
2022-06-10
- 対応 Sora:
2021.2.8
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m102.5005.7.6
- [UPDATE] システム条件を変更しました
- Xcode 13.4
- Swift 5.6.1
- [UPDATE] WebRTC 102.5005.7.6 に対応しました
- [UPDATE] offer に mid が含まれる場合は、 mid を利用して sender を設定する
- [FIX] CocoaPods 利用時 App Store Connect に bitcode を有効にしてバイナリをアップロードするとエラーになる問題を解消しました。
- WebRTC 102.5005.7.6 ビルドにて対応しているため iOS SDK 本体の修正はありません
2022.2.1¶
- 日付:
2022-04-22
- 対応 Sora:
2021.2.8
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m97.4692.4.0
- [FIX] CocoaPods 利用時 App Store Connect に bitcode を有効にしてバイナリをアップロードするとエラーになる問題が発生しました。暫定回避策として、 WebRTC 97.4692.4.0 に下げています。
- 最新のバージョンにて解消しております。
2022.2.0¶
- 日付:
2022-03-11
- 対応 Sora:
2021.2.1
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m99.4844.1.0
- [CHANGE] DataChannel 経由で受信したメッセージのうち label が signaling, push, notify について
MediaChannelHandlers.onReceiveSignalingで通知する処理を追加しました - [CHANGE]
MediaChannel.connectedUrlを更新するタイミングを修正しました- type: connect を送信するタイミングで
MediaChannel.connectedUrlを更新していたものを、 type: offer を受信したタイミングで値を更新するように変更しました
- type: connect を送信するタイミングで
- [UPDATE] WebRTC 99.4844.1.0 に対応しました
- [ADD] メッセージング機能を追加しました
- 詳細は リアルタイムメッセージング機能 をご確認ください
- [ADD]
MediaChannel.contactUrlを追加しましたMediaChannel.contactUrlは、複数のシグナリング候補の中から最初に type: connect メッセージを送信した Sora のシグナリング URL です
2022.1.1¶
- 日付:
2022-03-04
- 対応 Sora:
2021.2.1
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m98.4758.0.0
- [FIX] Sora との接続確立後に WebSocket のエラーが発生した場合、 エラーが正しく伝搬されず、終了処理が実行されない問題を修正しました
2022.1.0¶
- 日付:
2022-02-03
- 対応 Sora:
2021.2.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m98.4758.0.0
- [CHANGE] スポットライトレガシーを削除しました
- [CHANGE]
WebSocketChannelプロトコルを廃止しましたConfiguration.webSocketChannelTypeを廃止しましたConfiguration.allowsURLSessionWebSocketChannelを廃止しましたWebSocketChannelHandlers.onDisconnectを廃止しましたWebSocketChannelHandlers.onPongを廃止しましたWebSocketChannelHandlers.onSendを廃止しましたMediaChannel.webSocketChannelを廃止しましたWebSocketChannelHandlersを廃止しました
- [CHANGE]
Starscreamを削除して、URLSessionWebSocketTaskをデフォルトで使用する対応を行いました - [CHANGE] サポートする iOS のバージョンを13以上に変更しました
- [CHANGE]
MediaChannel.nativeの型をRTCPeerConnectionからRTCPeerConnection?に変更しました- PeerChannel で force unwrapping している箇所を修正する際に、併せて修正しました
- [UPDATE] システム条件を変更しました
- macOS 12.2 以降
- Xcode 13.2
- Swift 5.5.2
- [UPDATE] WebRTC 98.4758.0.0 に対応しました
- [UPDATE] MediaStream から MediaChannel にアクセスできるようにしました
- [ADD] 複数シグナリング URL の指定に対応しました
Configuration.urlを廃止してConfiguration.urlCandidatesを追加しましたMediaChannel.connectedUrlを追加しました- 詳細は 複数のシグナリング URL を指定する をご確認ください
- [ADD] type: rediret に対応しました
- 詳細は クラスター機能利用時のシグナリングのリダイレクト をご確認ください
- [FIX] CameraVideoCapturer で force unwrapping していた箇所を修正しました
- [FIX] VideoView に debugMode = true を設定した際にメモリー・リークが発生する問題を修正しました
2021.x¶
2021.3.1¶
- 日付:
2022-01-05
- 対応 Sora:
2021.2.0
- 対応 iOS:
12.1 以降
- 対応 libwebrtc:
m95.4638.3.0
- [FIX]
RTCPeerConnectionStateが.failedに遷移した際の切断処理中にクラッシュする問題を修正しましたBasicPeerChannelContextとPeerChannelの循環参照を防ぐために弱参照を利用していましたが、それが原因でBasicPeerChannelContextより先にPeerChannelが解放されるケースがあり、クラッシュの原因となっていました
- [FIX]
DataChannelクラスで利用しているデータ圧縮/復号処理にメモリー・リークがあったので修正しました
2021.3.0¶
- 日付:
2021-11-25
- [CHANGE] PeerChannel, SignalingChannel protocol を削除しました
Configuration.peerChannelTypeを廃止しましたConfiguration.signalingChannelTypeを廃止しましたConfiguration.peerChannelHandlersを廃止しましたConfiguration.signalingChannelHandlersを廃止しましたMediaChannel.nativeを追加しましたMediaChannel.webSocketChannelを追加しました
- [UPDATE] システム条件を変更しました
- macOS 12.0 以降
- Xcode 13.1
- Swift 5.5
- CocoaPods 1.11.2
- [UPDATE] WebRTC 95.4638.3.0 に対応しました
- [ADD] DataChannel シグナリングに対応しました
Configuration.dataChannelSignalingを追加しましたConfiguration.ignoreDisconnectWebSocketを追加しました
- [FIX] Sora 接続時に audioEnabled = false を設定すると answer 生成に失敗してしまう問題についてのワークアラウンドを削除しました
2021.2.1¶
- 日付:
2021-09-29
- [FIX] Swift Package Manager に対応するためバージョニングを修正しました
2021.2¶
- 日付:
2021-09-29
- [CHANGE] 接続開始時のカメラ・デバイスを指定可能にしました
Configuration.cameraSettings.positionに.frontまたは.backを設定して、接続開始時のカメラ・デバイスを指定します- この修正に伴い、以下の API が変更されました
CameraVideoCapturerの API を破壊的に変更しましたCameraVideoCapturer.SettingsをCameraSettingsにリネームしましたVideoCapturerHandlersをCameraVideoCapturerHandlersにリネームしましたVideoCapturerを廃止しましたVideoCapturerDeviceを廃止しましたCameraPositionを廃止しましたConfiguration.videoCapturerDeviceを廃止しましたMediaStream.videoCapturerを廃止しました
- [UPDATE] Swift Package Manager に対応しました
- [UPDATE] WebRTC 93.4577.8.0 に対応しました
- [UPDATE] システム条件を変更しました
- iOS 12.1 以降
- [UPDATE] Starscream のバージョンを 4.0.4 に更新しました
- [UPDATE] シグナリング・メッセージ re-offer, re-answer に対応しました
- [UPDATE] AES-GCM を有効にしました
- [UPDATE] SoraDispatcher を追加しました
- libwebrtc 内部で利用されているディスパッチ・キューをラップし、 SDK のユーザーから利用しやすくしました
- [FIX] 接続、切断の検知に RTCPeerConnectionState を参照するように変更しました
- [FIX] 接続終了後に MediaChannel のメモリーが解放されずに残り続ける事象を修正しました
2021.1¶
- 日付:
2021-06-24
- [CHANGE] スポットライトに関する API を変更しました
- Sora のスポットライトレガシー機能を利用するための API を
Sora.useSpotlightLegacy()に変更しました Configuration.activeSpeakerLimitを非推奨にして、Configuration.spotlightNumberに変更しましたConfiguration.spotlightFocusRidを追加しましたConfiguration.spotlightUnfocusRidを追加しました
- Sora のスポットライトレガシー機能を利用するための API を
- [CHANGE] シグナリングに含まれる JSON 型のフィールドを JSONSerialization でデコードするようにしました
- フィールドの型を SignalingMetadata から Any? に変更しました。任意の型にキャストして利用する必要があります
- 対象のフィールド
SignalingNotifyConnection.metadataSignalingOffer.metadataSignalingPush.data
- 修正にともない
SignalingClientMetadataをSignalingNotifyMetadataにリネームしました
- [CHANGES] type: notify のシグナリング・メッセージに対応する struct として SignalingNotify を追加しました
- event_type 毎に定義されていた以下の struct を廃止し
SignalingNotifyに統合しましたSignalingNotifyConnectionSignalingNotifySpotlightChangedSignalingNotifyNetworkStatus
- event_type 毎に定義されていた以下の struct を廃止し
- [CHANGE] サイマルキャストのオプションを Sora のアップデートへ追従しました
SimulcastQualityを削除しSimulcastRidを追加しましたConfiguration.simulcastQualityを削除しsimulcastRidを追加しましたSignalingConnect.simulcastQualityを削除しsimulcastRidを追加しました
- [CHANGE] DeviceModel を廃止し、 hw.machine の結果を表示するよう変更しました
- [UPDATE] システム条件を変更しました
- Xcode 12.5
- Swift 5.4
- CocoaPods 1.10.1
- [UPDATE] サイマルキャストで VP8 / H.264 (ハードウェアアクセラレーション含む) に対応しました
- [UPDATE] WebRTC 91.4472.9.1 に対応しました
- [UPDATE] AV1 に対応しました
- [ADD] libwebrtc のログレベルを設定する API を追加しました
Sora.setWebRTCLogLevel(_:)
- [FIX] SignalingNotify に漏れていたフィールドを追加しました
SignalingNotify.authnMetadataSignalingNotify.authzMetadataSignalingNotify.dataSignalingNotify.turnTransportType
- [FIX] サイマルキャストのパラメーター active: false が無効化されてしまう問題を修正しました
- [FIX] WebSocketChannel 切断時に MediaChannel を切断する処理が漏れていたので追加しました
2020.x¶
2020.7.2¶
- 日付:
2021-05-26
- [FIX] Sora 接続時に SDK から client_id が指定できない問題を修正しました
Configuration.clientId: 追加
2020.7.1¶
- 日付:
2021-01-08
- [FIX] スポットライトレガシー機能に対応しました
- [FIX] API: スポットライトに関する API について以下を変更しました
Configuration.Spotlight: 追加しましたConfiguration.spotlightEnabled: 型をSpotlightに変更しました
2020.7¶
- 日付:
2020-11-06
- [CHANGE] WebRTC 86.4240.10.0 に変更しました
- [CHANGE]
AudioMode.swiftがターゲット含まれておらずビルドできなかった事象を修正しました
2020.6¶
- 日付:
2020-11-05
- [CHANGE] WebRTC M86 に対応しました
- [CHANGE] API: スポットライトに関する API について以下を変更しました
Configuration.spotlight: 非推奨になりましたConfiguration.spotlightEnabled: 追加しましたConfiguration.activeSpeakerLimit: 追加しました
- [CHANGE] API: 音声モードに関する API について以下を変更しました
Sora.setAudioMode(_:options:): 追加しましたAudioMode: 追加しましたAudioOutput: 追加しました
- [UPDATE] システム条件を更新しました
- Xcode 12.0
- Swift 5.3
- CocoaPods 1.9.3
- [FIX] API:
Sora.connect(): タイムアウト時にハンドラが実行されない事象を修正しました
2020.5¶
- 日付:
2020-08-11
- [UPDATE] システム条件を更新しました
- Xcode 11.6
- Swift 5.2.4
- WebRTC SFU Sora 2020.1 以降
- [UPDATE] WebRTC M84 に対応しました
- [UPDATE] シグナリング pong に統計情報を追加しました
- [FIX] API: 次のイベントハンドラのクラスにコンストラクタを追加しました
MediaChannelHandlersMediaStreamHandlersPeerChannelHandlersSignalingChannelHandlersSoraHandlersVideoCapturerHandlersWebSocketChannelHandlers
- [FIX] API:
Sora.connect(): 接続先ホストが存在しない場合にハンドラが実行されない事象を修正しました
2020.4.1¶
- 日付:
2020-04-08
- [FIX] 受信したシグナリングの role が
sendonly,recvonly,sendrecvの場合にデコードに失敗する事象を修正しました - [FIX] API:
MediaChannel:senderStream: ストリーム ID が接続時に指定した配信用ストリームID と一致するストリームを返すように修正しました (変更前はカメラのストリームを返した) - [FIX] API:
MediaChannel:receiverStreams:senderStream以外のストリームを返すように修正しました (変更前はカメラ以外のストリームを返した)
2020.4¶
- 日付:
2021-03-27
- [CHANGE] iOS 13 以降の場合に URLSession を使って WebSocket 通信を行うように修正しました
- [CHANGE] Plan B に関連する API を削除しました
- [CHANGE] シグナリングで送信する JSON にて、 role を upstream/downstream のどちらかで出力するように修正しました
- [CHANGE] シグナリングの offer/update/ping を peer connection の状態に関わらず処理するように修正しました
- [CHANGE] 端末情報を追加しました (iPhone 11, iPhone 11 Pro, iPhone1 11 Pro Max, iPad 7th)
- [CHANGE] ログに出力される WebSocket のエラー内容を詳細にしました
- [CHANGE] API:
MediaChannel:senderStreamプロパティを追加しました - [CHANGE] API:
MediaChannel:receiverStreamsプロパティを追加しました
2020.3¶
- 日付:
2020-02-28
- [FIX] マイクが初期化されない事象を修正しました
2020.2¶
- 日付:
2020-02-25
- [CHANGE] 受信時にマイクのパーミッションを要求しないようにしました
- [FIX]
Sora.remove(mediaChannel:)実行時にonRemoveMediaChannelが呼ばれない事象を修正しました
2020.1¶
- 日付:
2020-01-20
本バージョンよりバージョン表記を「リリース年.リリース回数」に変更しました。
- [CHANGE] WebRTC M79 に対応しました
- [CHANGE] Carthage の使用を止めました
- [CHANGE] シグナリングに含める各種バージョン情報を変更しました
- [CHANGE] API: SocketRocket の使用を止めて Starscream を採用しました
- [CHANGE] API: イベントハンドラのプロパティ名を短縮しました
- [CHANGE] API:
Configuration:init(url:channelId:role:)を非推奨にしました - [CHANGE] API:
Configuration:init(url:channelId:role:multistreamEnabled:)を追加しました - [CHANGE] API:
Configuration:webSocketChannelHandlersプロパティを追加しました - [CHANGE] API:
Configuration:multistreamEnabledプロパティを追加しました - [CHANGE] API:
Role: Sora の仕様に合わせてsendonly,recvonly,sendrecvを追加しました - [CHANGE] API:
Role:publisher,subscriber,group,groupSubを非推奨にしました - [UPDATE] システム条件を更新しました
- Xcode 11.3
- CocoaPods 1.8.4 以降
- WebRTC SFU Sora 19.10.3 以降
2.x¶
2.6.0¶
CHANGE¶
- システム条件を更新しました
- macOS 10.15
- Xcode 11.1
- WebRTC M78 に対応しました
2.5.0¶
CHANGE¶
- システム条件を更新しました
- Xcode 11
- Swift 5.1
2.4.1¶
CHANGE¶
- 依存するライブラリを変更しました (Cartfile)
- sora-webrtc-ios 76.3.1 -> shiguredo-webrtc-ios 76.3.1
- 対応アーキテクチャから armv7 を外しました
- 対応アーキテクチャに x86_64 を追加しました (シミュレーターの動作は未保証です)
- シグナリングに SDK と端末の情報を含めるようにしました
2.4.0¶
CHANGE¶
- システム条件を更新しました
- Xcode 10.3
- WebRTC M76 に対応しました
- サイマルキャスト機能に対応しました
- スポットライト機能に対応しました
- VAD 機能を削除しました
- 音声ビットレートの指定に対応しました
- シグナリングのメタデータに対応しました
- API:
Configuration:audioBitRateプロパティを追加しました - API:
Configuration:maxNumberOfSpeakersプロパティを削除しました - API:
Configuration:simulcastEnabledプロパティを追加しました - API:
Configuration:simulcastQualityプロパティを追加しました - API:
Configuration:spotlightプロパティを追加しました - API:
SimulcastQuality: 追加しました - API: シグナリングに関する API の名前を変更しました
SignalingMessage->SignalingSignalingNotificationEventType->SignalingNotifyEventTypeSignalingConnectMessage->SignalingConnectSignalingOfferMessage->SignalingOfferSignalingOfferMessage.Configuration->SignalingOffer.ConfigurationSignalingPongMessage->SignalingPongSignalingPushMessage->SignalingPush
- API:
SignalingAnswer: 追加しました - API:
SignalingCandidate: 追加しました - API:
SignalingClientMetadata: 追加しました - API:
SignalingMetadata: 追加しました - API:
SignalingNotifyConnection: 追加しました - API:
SignalingNotifyNetworkStatus: 追加しました - API:
SignalingNotifySpotlightChanged: 追加しました - API:
SignalingOffer.Encoding: 追加しました - API:
SignalingUpdate: 追加しました - API:
Signaling: 追加しました
2.3.2¶
CHANGE¶
- SDP セマンティクスのデフォルトを Unified Plan に変更しました
- API: シグナリング "notify" の "connection_id" プロパティに対応しました
- API:
SDPSemantics:case defaultを削除しました - API:
SignalingNotifyMessage:connectionIdプロパティを追加しました
FIX¶
- 接続状態によってシグナリング "notify" が無視される現象を修正しました
2.3.1¶
FIX¶
- グループ (マルチストリーム) 時、映像を無効にした状態で接続すると落ちる現象を修正しました
2.3.0¶
CHANGE¶
- システム条件を更新しました
- WebRTC SFU Sora 19.04.0 以降
- macOS 10.14.4 以降
- Xcode 10.2
- Swift 5
- マルチストリーム時に強制的に Plan B に設定していたのを止めました
- 未知のシグナリングメッセージを受信したら例外を発生するように変更しました
- シグナリング "notify" の次のイベントに対応しました
- "spotlight.changed"
- "network.status"
2.2.1¶
CHANGE¶
- システム条件を更新しました
- WebRTC SFU Sora 18.10.0 以降
- macOS 10.14 以降
- iOS 10.0
- Xcode 10.1
- Swift 4.2.1
- シグナリング "push" に対応しました
FIX¶
- シグナリング "notify" に含まれるメタデータが解析されていない現象を修正しました
2.2.0¶
CHANGE¶
- システム条件を更新しました
- iOS 12.0
- Xcode 10.0
- Swift 4.2
- API:
ConnectionTask: 追加しました - API:
Sora:connect(configuration:webRTCConfiguration:handler:): 実行中に接続の試行をキャンセル可能にしました
2.1.3¶
CHANGE¶
- システム条件を更新しました
- macOS 10.13.6 以降
- Xcode 9.4
- Swift 4.1
FIX¶
- MediaChannel: 接続解除後、Sora にしばらく接続が残る可能性がある現象を修正しました
2.1.2¶
CHANGE¶
- WebRTC SFU Sora 18.04 以降に対応しました
- WebRTC M66 に対応しました
2.1.1¶
CHANGE¶
- システム条件を更新しました
- macOS 10.13.2 以降
- Xcode 9.3
- Swift 4.1
- Carthage 0.29.0 以降、または CocoaPods 1.4.0 以降
- WebRTC SFU Sora 18.02 以降
- API:
MediaStream:audioVolumeプロパティを非推奨にしました - API:
MediaStream:remoteAudioVolumeプロパティを追加しました
FIX¶
- API:
MediaStream: 配信中にvideoEnabledプロパティまたはaudioEnabledプロパティで映像か音声を無効にすると、有効に戻しても他のクライアントに配信が再開されない現象を修正しました - API:
WebRTCInfo:shortRevision: 戻り値の文字列が 7 桁でない現象を修正しました
2.1.0¶
CHANGE¶
- 視聴のみのマルチストリームに対応しました
- 音声検出による映像の動的切替に対応しました
- API:
Role:.groupSubを追加しました - API:
Configuration:maxNumberOfSpeakersプロパティを追加しました - API:
SignalingConnectMessage:maxNumberOfSpeakersプロパティを追加しました
2.0.4¶
CHANGE¶
- WebRTC M64 に対応しました
2.0.3¶
CHANGE¶
- WebRTC M63 に対応しました
- SDWebImage 4.2.2 に対応しました
- API:
WebSocketChannelHandlers:onDisconnectHandlerを追加しました - API:
WebSocketChannelHandlers:onFailureHandlerを削除しました - API:
SignalingChannelHandlers:onDisconnectHandlerを追加しました - API:
SignalingChannelHandlers:onFailureHandlerを削除しました - API:
SoraError: WebSocket に関するエラーを次の二つに分割しましたwebSocketClosed(statusCode:reason:)webSocketError()
- API:
PeerChannelHandlers:onDisconnectHandlerを追加しました - API:
PeerChannelHandlers:onFailureHandlerを削除しました - API:
MediaChannelHandlers:onFailureHandlerを削除しました
FIX¶
- API:
MediaChannel:PeerChannelの接続解除時にMediaChannelの状態が接続解除にならない現象を修正しました
2.0.2¶
CHANGE¶
- connect シグナリングメッセージに Offer SDP を含めるようにしました
- API: MediaStreamAudioVolume: 追加しました
- API: MediaStream: audioVolume プロパティを追加しました
FIX¶
- API: MediaStream: videoEnabled: 映像をオフにしても VideoView に反映されない現象を修正しました
- API: MediaStream: audioEnabled: 音声の可否がサブスクライバーに反映されない現象を修正しました
2.0.1¶
CHANGE¶
- Xcode 9.1 に対応しました
- API: MediaStream: 接続中に映像と音声の送受信を停止・再開するプロパティを追加しました
- API: MediaStreamHandlers: 追加しました
2.0.0¶
設計と API を大きく見直しました。
CHANGE¶
- WebRTC M62 に対応しました
- アーキテクチャ armv7 に対応しました
- iOS 11 に対応しました
- Xcode 9 に対応しました
- Swift 4 に対応しました
- 依存するフレームワークから Unbox.framework を削除しました
- WebRTC のネイティブ API (主にクラスやプロトコル名の接頭辞が
RTCの API) を非公開にしました - クライアントの設定を
Configurationにまとめました - ロールについて、 "パブリッシャー (Publisher)" と "サブスクライバー (Subscriber)" に加えて、マルチストリームで通信を行う "グループ (Group)" を追加しました。
- 通信を行うオブジェクト (WebSocket 接続、シグナリング接続、ピア接続、メディアストリーム) をプロトコルに変更しました (デフォルトの実装は
private) - 内部で使用する WebSocket の API (SRWebSocket.framework の API) を非公開にしました
- 任意の映像キャプチャーの使用を可能にしました
CMSampleBufferを映像フレームとして使用可能にしました- 映像フレームの編集を可能にしました
CHANGE (API)¶
- 次のクラス、構造体、列挙体、プロトコルを削除しました
Attendee: 同等の機能をMediaChannelに実装しましたBuildInfo: 同等の機能をWebRTCInfoに実装しましたConnection: パブリッシャーとサブスクライバーをそれぞれ独立させたため削除しましたConnectionController: 同等の機能を削除しましたConnectionController.RequestConnectionController.RoleConnectionController.StreamType
ConnectionError: 同等の機能をSoraErrorに実装しましたEvent: 各イベントをイベントハンドラのみで扱うようにしましたEvent.EventTypeEventLog: ロギング機能を削除しました
MediaConnection: 同等の機能をMediaChannelに実装しましたMediaPublisher: パブリッシャーをMediaChannelで扱うようにしたため削除しましたMediaSubscriber: サブスクライバーをMediaChannelで扱うようにしたため削除しましたMediaOption: 同等の機能をConfigurationに実装しましたMessage: 同等の機能をSignalingMessageに実装しましたMessage.MessageTypeMessagable
PeerConnection: 同等の機能をPeerChannelに定義しましたPeerConnectionEventHandlers: 同等の機能をPeerChannelHandlersに実装しましたSignalingEventHandlers: 同等の機能をSignalingChannelHandlersに実装しましたSignalingNotify: 同等の機能をSignalingNotifyMessageに実装しましたSignalingSnapshot: 同等の機能をSignalingSnapshotMessageに実装しましたVideoFrameHandle: 同等の機能をVideoFrameに実装しましたWebSocketEventHandlers: 同等の機能をWebSocketChannelHandlersに実装しました
- 次のクラスを追加しました
CameraVideoCapturerCameraVideoCapturer.SettingsICECandidateICEServerInfoMediaChannelMediaChannelHandlersPeerChannelHandlersSignalingChannelHandlersSoraSoraHandlersVideoCapturerHandlersWebSocketChannelHandlers
- 次の構造体を追加しました
ConfigurationMediaConstraintsSignalingConnectMessageSignalingNotifyMessageSignalingOfferMessageSignalingOfferMessage.ConfigurationSignalingPongMessageSignalingSnapshotMessageSignalingUpdateOfferMessageSnapshotWebRTCConfiurationWebRTCInfo
- 次の列挙体を追加しました
ConnectionStateICETransportPolicyLogLevelNotificationEventSignalingNotificationEventTypeSignalingMessageSignalingRoleSoraErrorTLSSecurityPolicyVideoCapturerDeciveVideoFrameWebSocketMessageWebSocketMessageStatusCode
- 次のプロトコルを追加しました
MediaStreamPeerChannelSignalingChannelVideoCapturerViderFilterWebSocketChannel
Notificationの使用を中止し、次の関連する構造体と列挙体を削除しましたConnection.NotificationKeyConnection.NotificationKey.UserInfoMediaConnection.NotificationKeyMediaConnection.NotificationKey.UserInfoMediaStream.NotificationKeyMediaStream.NotificationKey.UserInfo
AudioCodecについて以下を変更しました.Opusを.opusに変更しました.PCMUを.pcmuに変更しました
MediaStreamについて以下を変更しました- クラスからプロトコルに変更し、 API を一新しました
Roleについて以下を変更しました.groupを追加しました
VideoCodecについて以下を変更しました.VP8を.vp8に変更しました.VP9を.vp9に変更しました.H264を.h264に変更しました
VideoFrameについて以下を変更しました- プロトコルから列挙体に変更し、 API を一新しました
VideoRendererについて以下を変更しましたonChangedSize(_:)をonChange(size:)に変更しましたrenderVideoFrame(_:)をrender(videoFrame:)に変更しました
1.x¶
1.2.5¶
FIX¶
- CircleCI でのビルドエラーを修正しました
1.2.4¶
CHANGE¶
- armv7 に対応しました
- API: MediaOption を struct に変更しました
- API: ConnectionController: ロールとストリーム種別の選択制限を削除しました
FIX¶
- API: マルチストリーム時、配信者のストリームが二重に生成されてしまう現象を修正しました
1.2.3¶
- 日付:
2017-8-29
- 対応 Sora:
17.06
CHANGE¶
- API: VideoView:
contentModeに応じて映像のサイズを変更するようにしました
FIX¶
- API: 残っていたデバッグプリントを削除しました
1.2.2¶
- 日付:
2017-8-16
- 対応 Sora:
17.06
CHANGE¶
- API: 一部の静的変数を定数に変更しました
FIX¶
- API: VideoView: メモリー解放時に Key-Value Observing に関する例外が発生する現象を修正しました
- API: VideoView: メモリー解放時にクラッシュする現象を修正しました
1.2.1¶
- 日付:
2017-8-3
- 対応 Sora:
17.06
FIX¶
- API: ConnectionController: 指定した映像・音声コーデックが UI とシグナリングに反映さ>れない現象を修正しました
1.2.0¶
- 日付:
2017-8-2
- 対応 Sora:
17.06
CHANGE¶
- WebRTC M60 に対応しました
- Bitcode に対応しました
- スナップショットに対応しました
- リンクするフレームワークに SDWebImage.framework を追加しました
- API: Event.EventType: 次のケースを追加しました
case Snapshot
- API: MediaOption: 次のプロパティを追加しました
var snapshotEnabled
- API: SignalingEventHandlers: 次のメソッドを追加しました
-
func onSnapshot(handler: (SignalingSnapshot) -> Void) - API: SignalingSnapshot: 追加しました
- API: Snapshot: 追加しました
- API: VideoFrame について以下を変更しました
var width:Int32->Intvar height:Int32->Intvar timestamp:CMTime->CMTime?
- API: VideoFrameHandle: 次のプロパティ名を変更しました
case webRTC->case WebRTC
- API: VideoFrameHandle: 次のプロパティを追加しました
case snapshot
- API: VideoView: スナップショットの描画に対応しました
- API: ConnectionController: スナップショットの項目を追加しました
1.1.0¶
- 日付:
2017-7-7
- 対応 Sora:
17.06
CHANGE¶
- CircleCI を利用した自動ビルドを追加しました
- examples を削除しました
- WebRTC M59 に対応しました
- ディレクトリ構造を変更し、プロジェクトのファイルをトップレベルに移動しました
- シグナリング "notify" に対応しました
- イベントログに接続エラーの詳細を出力するようにしました
- 次の不要なファイルを削除しました
JSON.swift
- API: Attendee: 追加しました
- API: BuildInfo: 次のプロパティを削除しました
var VP9Enabled
- API: Connection: 次のプロパティとメソッドを削除しました
var numberOfConnectionsfunc onChangeNumberOfConnections(handler:)
- API: ConnectionError:
var descriptionを追加しました - API: ConnectionController: ビットレートの設定項目を追加しました
- API: ConnectionController: イベントログの画面を追加しました
- API: ConnectionController: Cancel ボタンを Back ボタンに変更しました
- API: Event.EventType:
ConnectionMonitorを追加しました - API: MediaConnection: 次のプロパティとメソッドを追加しました
var numberOfConnectionsfunc onAttendeeAdded(handler:)func onAttendeeRemoved(handler:)func onChangeNumberOfConnections(handler:)
- API: MediaStreamRole: 削除しました
- API: Role: 追加しました
- API: PeerConnection: 接続状態に関わらず WebSocket のイベントハンドラを実行するようにしました
- API: SignalingEventHandlers:
func onNotify(handler:)を追加しました - API: SignalingEventType: 追加しました
- API: SignalingNotify: 追加しました
- API: SignalingRole: 追加しました
- API: VideoFrame について以下を変更しました
var width:Int->Int32var height:Int->Int32
- API: ConnectionController: リファクタリングを行いました
- API: ConnectionController: VP9 の有効・無効を示すセルを削除しました
FIX¶
- Sora の URL のプロトコルが ws または wss 以外であればエラーにするよう変更しました
- 接続解除可能な状況でも
connectionBusyのエラーが発生する現象を修正しました - 接続解除後も内部で接続状態の監視を続ける現象を修正しました
- API: ConnectionController: 接続画面外で接続が解除されても接続画面では接続状態である現象を修正しました
- API: VideoView のサイズの変化に動画のサイズが追従しない現象を修正しました
1.0.1¶
- 日付:
2017-06-05
- 対応 Sora:
17.04
- [CHANGE] システム条件を更新しました
- Xcode 8.1 以降 -> 8.3.2 以降
- Swift 3.0.1 -> 3.1
- [UPDATE] SoraApp の Cartfile で利用する shiguredo/sora-ios-sdk を 1.0.1 にアップデートしました
1.0.0¶
- 日付:
2017-04-10
- 対応 Sora:
17.02
- [CHANGE] WebRTC M57 に対応しました
- [CHANGE] 対応アーキテクチャを arm64 のみにしました
- [CHANGE] マルチストリームに対応しました
- [CHANGE] シグナリング: "notify" に対応しました
- [CHANGE] シグナリング: Sora の仕様変更に伴い、 "stats" への対応を廃止しました
- [CHANGE] シグナリング: Sora の仕様変更に伴い、 "connect" の "access_token" パラメーターを "metadata" に変更しました
- [CHANGE] API: ArchiveFinished: 削除しました
- [CHANGE] API: ArchiveFailed: 削除しました
- [CHANGE] API: MediaConnection: MediaStream を複数保持するようにしました
- [CHANGE] API: MediaConnection:
multistreamEnabledプロパティを追加しました - [CHANGE] API: MediaConnection: 次の変数の型を変更しました
webSocketEventHandlers:WebSocketEventHandlers?-->WebSocketEventHandlerssignalingEventHandlers:SignalingEventHandlers?-->SignalingEventHandlerspeerConnectionEventHandlers:PeerConnectionEventHandlers?-->PeerConnectionEventHandlers
- [CHANGE] API: MediaConnection:
connect(accessToken:timeout:handler:)メソッドの型をconnect(metadata:timeout:handler:)に変更しました - [CHANGE] API: MediaConnection, MediaStream: 次の API を MediaStream に移行しました
var videoRendererfunc startConnectionTimer(timeInterval:handler:)
- [CHANGE] API: MediaConnection.State: 削除しました
- [CHANGE] API: MediaOption.AudioCodec:
unspecifiedをdefaultに変更しました - [CHANGE] API: MediaOption.VideoCodec:
unspecifiedをdefaultに変更しました - [CHANGE] API: MediaPublisher:
autofocusEnabledプロパティを追加しました - [CHANGE] API: MediaStream: RTCPeerConnection のラッパーではなく、 RTCMediaStream のラッパーに変更しました
- [CHANGE] API: MediaStream:
startConnectionTimer(timeInterval:handler:): タイマーを起動した瞬間もハンドラーを実行するようにしました - [CHANGE] API: MediaStream.State: 削除しました
- [CHANGE] API: PeerConnection: RTCPeerConnection のラッパーとして追加しました
- [CHANGE] API: SignalingConnected: 削除しました
- [CHANGE] API: SignalingCompleted: 削除しました
- [CHANGE] API: SignalingDisconnected: 削除しました
- [CHANGE] API: SignalingFailed: 削除しました
- [CHANGE] API: StatisticsReport: RTCStatsReport の変更 (名前が RTCLegacyStatsReport に変更された) に伴い削除しました
- [CHANGE] API: VideoView: 映像のアスペクト比を保持するようにしました
- [UPDATE] API: MediaCapturer: 同一の RTCPeerConnectionFactory で再利用するようにしました
- [UPDATE] API: MediaCapturer: 映像トラック名と音声トラック名を自動生成するようにしました
- [UPDATE] API: VideoRenderer: 描画処理をメインスレッドで実行するようにしました
- [UPDATE] API: VideoView: UI の設計に Nib ファイルを利用するようにしました
- [UPDATE] API: VideoView: バックグラウンド (ビューがキーウィンドウに表示されていない) では描画処理を中止するようにしました
- [ADD] API: BuildInfo: 追加しました
- [ADD] API: ConnectionController: 追加しました
- [ADD] API: Connection: 次の API を追加しました
var numberOfConnectionsfunc onChangeNumberOfConnections(handler:)
- [ADD] API: Connection, MediaConnection, MediaStream, PeerConnection: 次のイベントで (NotificationCenter による) 通知を行うようにしました
- onConnect
- onDisconnect
- onFailure
- [ADD] API: WebSocketEventHandlers, SignalingEventHandlers, PeerConnectionEventHandlers: イニシャライザーを追加しました
- [FIX] シグナリング: 音声コーデック Opus を指定するためのパラメーターの間違いを修正しました
- [FIX] 接続解除後にイベントログを記録しようとして落ちる現象を修正しました
- [FIX] 接続失敗時にデバイスを初期化しようとして落ちる現象を修正しました (接続成功時のみ初期化するようにしました)
- [FIX] 接続試行中にエラーが発生して失敗したにも関わらず、成功と判断されてしまう場合がある現象を修正しました
- [FIX] API: MediaConnection: 接続解除後もタイマーが実行されてしまう場合がある現象を修正しました (タイマーに関する API は MediaStream に移動しました)
- [FIX] API: PeerConnection: 接続失敗時でもタイムアウト時のイベントハンドラが呼ばれる現象を修正しました
0.x¶
0.1.0¶
- 日付:
2016-12-28
- 対応 Sora:
3.4