古いリリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
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
->Signaling
SignalingNotificationEventType
->SignalingNotifyEventType
SignalingConnectMessage
->SignalingConnect
SignalingOfferMessage
->SignalingOffer
SignalingOfferMessage.Configuration
->SignalingOffer.Configuration
SignalingPongMessage
->SignalingPong
SignalingPushMessage
->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: 接続解除後、サーバーにしばらく接続が残る可能性がある現象を修正しました
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.Request
ConnectionController.Role
ConnectionController.StreamType
ConnectionError
: 同等の機能をSoraError
に実装しましたEvent
: 各イベントをイベントハンドラのみで扱うようにしましたEvent.EventType
EventLog
: ロギング機能を削除しました
MediaConnection
: 同等の機能をMediaChannel
に実装しましたMediaPublisher
: パブリッシャーをMediaChannel
で扱うようにしたため削除しましたMediaSubscriber
: サブスクライバーをMediaChannel
で扱うようにしたため削除しましたMediaOption
: 同等の機能をConfiguration
に実装しましたMessage
: 同等の機能をSignalingMessage
に実装しましたMessage.MessageType
Messagable
PeerConnection
: 同等の機能をPeerChannel
に定義しましたPeerConnectionEventHandlers
: 同等の機能をPeerChannelHandlers
に実装しましたSignalingEventHandlers
: 同等の機能をSignalingChannelHandlers
に実装しましたSignalingNotify
: 同等の機能をSignalingNotifyMessage
に実装しましたSignalingSnapshot
: 同等の機能をSignalingSnapshotMessage
に実装しましたVideoFrameHandle
: 同等の機能をVideoFrame
に実装しましたWebSocketEventHandlers
: 同等の機能をWebSocketChannelHandlers
に実装しました
次のクラスを追加しました
CameraVideoCapturer
CameraVideoCapturer.Settings
ICECandidate
ICEServerInfo
MediaChannel
MediaChannelHandlers
PeerChannelHandlers
SignalingChannelHandlers
Sora
SoraHandlers
VideoCapturerHandlers
WebSocketChannelHandlers
次の構造体を追加しました
Configuration
MediaConstraints
SignalingConnectMessage
SignalingNotifyMessage
SignalingOfferMessage
SignalingOfferMessage.Configuration
SignalingPongMessage
SignalingSnapshotMessage
SignalingUpdateOfferMessage
Snapshot
WebRTCConfiuration
WebRTCInfo
次の列挙体を追加しました
ConnectionState
ICETransportPolicy
LogLevel
NotificationEvent
SignalingNotificationEventType
SignalingMessage
SignalingRole
SoraError
TLSSecurityPolicy
VideoCapturerDecive
VideoFrame
WebSocketMessage
WebSocketMessageStatusCode
次のプロトコルを追加しました
MediaStream
PeerChannel
SignalingChannel
VideoCapturer
ViderFilter
WebSocketChannel
Notification
の使用を中止し、次の関連する構造体と列挙体を削除しましたConnection.NotificationKey
Connection.NotificationKey.UserInfo
MediaConnection.NotificationKey
MediaConnection.NotificationKey.UserInfo
MediaStream.NotificationKey
MediaStream.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
->Int
var height
:Int32
->Int
var 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 numberOfConnections
func onChangeNumberOfConnections(handler:)
API: ConnectionError:
var description
を追加しましたAPI: ConnectionController: ビットレートの設定項目を追加しました
API: ConnectionController: イベントログの画面を追加しました
API: ConnectionController: Cancel ボタンを Back ボタンに変更しました
API: Event.EventType:
ConnectionMonitor
を追加しましたAPI: MediaConnection: 次のプロパティとメソッドを追加しました
var numberOfConnections
func 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
->Int32
var 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?
-->WebSocketEventHandlers
signalingEventHandlers
:SignalingEventHandlers?
-->SignalingEventHandlers
peerConnectionEventHandlers
:PeerConnectionEventHandlers?
-->PeerConnectionEventHandlers
[CHANGE] API: MediaConnection:
connect(accessToken:timeout:handler:)
メソッドの型をconnect(metadata:timeout:handler:)
に変更しました[CHANGE] API: MediaConnection, MediaStream: 次の API を MediaStream に移行しました
var videoRenderer
func 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 numberOfConnections
func 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