古いリリースノート

CHANGE

後方互換性のない変更

UPDATE

後方互換性がある変更

ADD

後方互換性がある追加

FIX

バグ修正

2021.3

日時:

2021-10-07

対応 Sora:

2021.1 以降

対応 libwebrtc:

m93.4577.8.2

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

  • [FIX] stats メッセージに含まれる統計情報のフォーマットを修正しました

2021.2

日時:

2021-08-05

対応 Sora:

2021.1

対応 libwebrtc:

m92.4515.9.1

  • [CHANGE] SoraMediaChannel のコンストラクタ引数 channelId の型を String? から String に変更しました

  • [CHANGE] connect メッセージの定義を以下の通り見直しました

    • connectionId の型を String? から String に変更しました

    • sdp_error を削除しました

  • [UPDATE] スポットライト接続時に spotlight_focus_rid / spotlight_unfocus_rid を指定できるようにしました

  • [UPDATE] offer に mid が含まれる場合は、 mid を利用して sender を設定するようにしました

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

  • [UPDATE] com.android.tools.build:gradle を 4.2.2 にアップデートしました

  • [UPDATE] JCenter サービスの利用を終了しました

  • [UPDATE] AES-GCM を利用可能にしました

  • [ADD] データチャネルシグナリングに対応しました

    • data_channel_signlaing, ignore_disconnect_websocket パラメータ設定を追加しました

    • onDataChannel コールバックを実装しました

    • 各 label に対応するデータチャネル関係のコールバックを実装しました

    • WebSocket 側の type:switched 受信の処理を追加しました

  • [FIX] 終了前にシグナリング Disconnect メッセージ送信を追加しました

    • 状態により WebSocket, DataChannel どちらかで送信するよう変更

  • [FIX] offer に data_channels が含まれない場合に対応しました

  • [FIX] 接続 / 切断を検知する処理を改善しました

    • 修正前は IceConnectionState を参照していましたが、 PeerConnectionState を参照するように修正しました

    • SoraErrorReason の以下の値を参照するコードは修正が必要です

      • ICE_FAILURE => PEER_CONNECTION_FAILED

      • ICE_CLOSED_BY_SERVER => PEER_CONNECTION_CLOSED

      • ICE_DISCONNECTED => PEER_CONNECTION_DISCONNECTED

  • [FIX] NotificationMessageturnTransportType を追加しました

  • [FIX] SoraSpotlightOption から simulcastRid を削除しました

    • スポットライトでは simulcast_rid を指定しても動作しないためです

  • [FIX] 接続成功時のコールバックが複数回実行されないように修正しました

    • 修正前は、 PeerConnectionState が CONNECTED に遷移する度に PeerChannel.Listener.onConnect が実行される可能性があったため初回のみコールバックが実行されるように修正しました

2021.1.1

日時:

2021-07-01

対応 Sora:

2021.1

対応 libwebrtc:

m89.4389.7.0

  • [CHANGE] SimulcastRid の定義を jp.shiguredo.sora.sdk.channel.signaling.message から jp.shiguredo.sora.sdk.channel.option.SoraVideoOption に変更しました

  • [FIX] Sora への接続時に simulcast_rid を指定するとエラーになる問題を修正しました

2021.1

日時:

2021-03-31

対応 Sora:

2020.3

対応 libwebrtc:

m89.4389.7.0

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

  • [UPDATE] Kotlin を 1.4.31 にアップデートしました

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

  • [UPDATE] com.android.tools.build:gradle を 4.1.2 にアップデートしました

  • [UPDATE] com.squareup.okhttp3:okhttp を 4.8.1 にアップデートしました

  • [UPDATE] io.reactivex.rxjava2:rxjava を 2.2.19 にアップデートしました

  • [UPDATE] io.reactivex.rxjava2:rxkotlin を 2.4.0 にアップデートしました

  • [UPDATE] com.github.ben-manes:gradle-versions-plugin を 0.38.0 にアップデートしました

  • [UPDATE] org.ajoberstar.grgit:grgit-gradle を 4.1.0 にアップデートしました

  • [UPDATE] com.squareup.okhttp3:okhttp を 4.9.1 にアップデートしました

  • [UPDATE] io.reactivex.rxjava2:rxjava を 2.2.21 にアップデートしました

  • [UPDATE] シグナリング pong に統計情報を含めるようにしました

  • [UPDATE] 最新のサイマルキャストの仕様に追従しました

  • [UPDATE] サイマルキャストで VP8 / H.264 (ハードウェアアクセラレーション含む) に対応しました

  • [UPDATE] サイマルキャストで TextureBuffer のエンコードに対応しました

  • [UPDATE] 最新のスポットライトの仕様に追従しました

  • [UPDATE] SoraMediaOption.enableSimulcast() に引数を追加しました

  • [UPDATE] SoraMediaOption.enableSpotlight() を追加しました

  • [UPDATE] SoraSpotlightOption を追加しました

  • [UPDATE] SoraMediaChannel.connectionId を追加しました

  • [UPDATE] 廃止予定のプロパティに Deprecated アノテーションを追加しました

    • ChannelAttendeesCount.numberOfUpstreams

    • ChannelAttendeesCount.numberOfDownstreams

    • NotificationMessage.numberOfUpstreamConnections

    • NotificationMessage.numberOfDownstreamConnections

  • [FIX] NotificationMessage に漏れていた以下のフィールドを追加しました

    • authn_metadata

    • authz_metadata

    • channel_sendrecv_connections

    • channel_sendonly_connections

    • channel_recvonly_connections

  • [FIX] サイマルキャストパラメータ active: false が無効化されてしまう問題を修正しました

  • [FIX] スポットライトレガシーに対応しました

    • スポットライトレガシーを利用する際は Sora.usesSpotlightLegacy = true を設定する必要があります

    • スポットライトレガシーは 2021 年 12 月に予定されている Sora のアップデートで廃止されます

2020.3

日時:

2020-07-04

対応 Sora:

2020.1

対応 libwebrtc:

m83.4103.12

  • [CHANGE] 古いロール upstream, downstream を削除しました

  • [CHANGE] SoraAudioOption.audioSource のデフォルト値を VOICE_COMMUNICATION に変更しました

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

  • [UPDATE] com.android.tools.build:gradle を 4.0.0 にアップデートしました

  • [UPDATE] com.squareup.okhttp3:okhttp を 4.7.2 にアップデートしました

  • [ADD] 新しいロール sendonly, recvonly, sendrecv に対応しました

2020.2

日時:

2020-05-19

  • [CHANGE] compileSdkVersion を 29 に変更しました

  • [CHANGE] targetSdkVersion を 29 に変更しました

  • [CHANGE] シグナリング connect に含めるクライアント情報を変更しました

  • [UPDATE] Kotlin を 1.3.72 にアップデートしました

  • [UPDATE] Dokka を 0.10.1 にアップデートしました

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

  • [UPDATE] com.android.tools.build:gradle を 3.6.3 にアップデートしました

  • [UPDATE] com.squareup.okhttp3:okhttp を 4.6.0 にアップデートしました

  • [UPDATE] junit:junit4.13 にアップデートしました

  • [UPDATE] Offer SDP 生成失敗時、エラーメッセージをシグナリング connect の sdp_error に含めて送信するよう変更しました

2020.1

日時:

2020-04-07

  • [UPDATE] com.android.tools.build:gradle を 3.5.3 にアップデートしました

  • [ADD] CameraCapturerFactory にフロント/リアカメラの優先順位のオプションを追加しました

  • [ADD] サイマルキャスト配信のエンコーダー設定変更用コールバックを追加しました

    • SoraMediaChannel.Listener#onSenderEncodings()

  • [ADD] 定数 SoraErrorReason.ICE_DISCONNECTED を追加しました

  • [ADD] SoraMediaChannel.ListeneronWarning メソッドを追加しました

    • このバージョンでは ICE_DISCONNECTED の通知のみに利用しています

    • ネットワークが不安定であることを UI に伝えることを想定ユースケースとしています

    • デフォルト実装は処理なしです

  • [FIX] IceConnectionState = disconnected では切断処理を行わないよう変更します

1.x

1.10.0

日時:

2019-11-14

対応 Sora:

19.04.9

対応 libwebrtc:

75.16.0

UPDATE

  • minSdkVersion を 21 にアップデートしました - com.squareup.okhttp3:okhttp 4.2.2 が minSdkVersion 21 以上にのみ対応するため

  • libwebrtc を 78.8.0 にアップデートしました

  • Android Studio 3.5.1 に対応しました

  • Kotlin を 1.3.50 にアップデートしました

  • Dokka を 0.10.0 にアップデートしました

  • com.android.tools.build:gradle を 3.5.2 にアップデートしました

  • com.squareup.okhttp3:okhttp を 4.2.2 にアップデートしました

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

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

  • AudioDeviceManager 生成時のパラメータをオプション SoraAudioOption に追加しました - audioSource: android.media.MediaRecorder.AudioSource のいずれか - useStereoInput: boolean - useStereoOutput: boolean

ADD

  • シグナリング connect メッセージに sdk_type, sdk_versionuser_agent を追加しました

  • シグナリング connect メッセージに audio.opus_params を追加しました

  • 1:N サイマルキャストの視聴に対応しました

CHANGE

  • 時雨堂ビルドの libwebrtc ライブラリ名称を変更しました - 旧: sora-webrtc-android 、 新: shiguredo-webrtc-android - transitive = truesora-android-sdk に依存している場合はアプリケーション側の変更は不要です

  • シグナリング connect メッセージから simulcast_rid を削除しました

FIX

  • 視聴のみかつ H.264 を指定した場合に接続できない現象を修正しました

1.9.0

日時:

2019-08-02

対応 Sora:

19.04.9

対応 libwebrtc:

75.16.0

UPDATE

  • libwebrtc を 75.16.0 にアップデートしました

  • Android Studio 3.4.2 に対応しました

  • Kotlin を 1.3.41 にアップデートしました

  • com.squareup.okhttp3:okhttp を 3.14.2 にアップデートしました

  • io.reactivex.rxjava2:rxjava を 2.2.10 にアップデートしました

  • androidx.test:core を 1.2.0 にアップデートしました

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

ADD

  • SoraMediaOptionaudioBitrate 設定を追加しました

  • SoraMediaOptionaudioOption: SoraAudioOption を追加しました

  • SoraAudioOption に libwebrtc 独自の音声処理設定のキーを追加しました

    • media constraints キーとの対応は以下の通りです:

    • ECHO_CANCELLATION_CONSTRAINT: "googEchoCancellation" 設定のキー

    • AUTO_GAIN_CONTROL_CONSTRAINT: "googAutoGainControl" 設定のキー

    • HIGH_PASS_FILTER_CONSTRAINT: "googHighpassFilter" 設定のキー

    • NOISE_SUPPRESSION_CONSTRAINT: "googNoiseSuppression"" 設定のキー

  • SoraAudioOption に音声処理に関するインターフェースを追加しました

    • AudioDeviceModule インスタンスの設定、デフォルトは null で JavaAudioDeviceModule を内部で生成します

    • ハードウェアの AEC (acoustic echo canceler) の利用有無を設定します。デフォルトでは可能であれば利用します。

    • ハードウェアの NS (noise suppressor) の利用有無を設定します。デフォルトでは可能であれば利用します。

    • libwebrtc 独自の音声処理の無効化設定、デフォルトはすべて有効です。 - audioProcessingEchoCancellation: "googEchoCancellation" に対応しました - audioProcessingAutoGainControl: "googAutoGainControl" に対応しました - audioProcessingHighpassFilter: "googHighpassFilter" に対応しました - audioProcessingNoiseSuppression: "googNoiseSuppression"" に対応しました

    • これらの設定の組み合わせ方によっては、端末依存でマイクからの音声が取れないことがあるため、 設定を決める際には実端末での動作確認が必要です

  • SoraErrorReason に音声の録音(audio record)、音声トラック(audio track)のエラーを追加しました

  • SoraMediaChannel.Lister のコールバックに onError(SoraErrorReason, String) を追加しました

    • デフォルトで何もしない実装のため、ソースコード上の変更は不要です

    • このバージョンでは JavaAudioDeviceModule の audio record, audio track 関連のエラーが このコールバックを通して通知されます。

  • rid-based simulcast に部分的に対応しました

    • 現状では、ソフトウェアエンコーダーのみで動作します。

    • 映像コーデックは VP8 のみの対応しています。

    • fixed resolution と一緒に使うとクラッシュ(SEGV)することが分かっています。

  • getStats を定期的に実行し統計を取得する API を追加しました

CHANGE

  • org.webrtc.PeerConnectionFactory に明示的に JavaAudioDeviceModule を渡すように変更しました

  • org.webrtc.audio.JavaAudioDeviceModuleHardwareAcousticEchoCanceler, HardwareNoiseSuppressor をデフォルトで有効にしました

    • 無効化したい場合には、個別に SoraAudioOption で設定し SoraMediaOption 経由で設定を渡せます。

  • audio source 作成時のデフォルト MediaConstraint で、libwebrtc 独自の音声処理をすべて有効化しました

    • 無効化したい場合には、個別に SoraAudioOption で設定し SoraMediaOption 経由で設定を渡せます。

1.8.1

日時:

2019-04-18

対応 Sora:

19.04.0

対応 libwebrtc:

73.10.1

UPDATE

  • libwebrtc を 73.10.1 にアップデートしました

  • encoder/decoder の対応コーデックのログ出力を追加しました

  • Kotlin を 1.3.30 にアップデートしました

  • Android Studio 3.4.0 に対応しました

  • SoraMediaOptionVideoEncoderFactoryVideoDecoderFactory を指定するオプションを追加しました

    • [プレビュー版]

  • SoraMediaChannel のコンストラクタに @JvmOverloads を追加し、Java からオーバーロードされて見えるよう 変更しました

    • これにより第 6 引数のタイムアウト値を省略したコンストラクタを呼び出せるようになります。

  • シグナリング connect メッセージの metadata を文字列だけでなく任意の型を受け付けるよう変更しました

    • 値は gson で変換できる必要があります。 Map, List は利用できます。

    • 文字列化された JSON を受け取った場合には、1.8.0 までと同様に、そのまま文字列値として取扱います。

  • シグナリング connect メッセージに client_id フィールドを追加しました - Sora 19.04 より前のバージョンでは、このフィールドを文字列に設定するとエラーになります

  • シグナリング connect メッセージの signaling_notify_metadataSoraMediaChannel コンストラクタから 指定できるようにしました

    • 値は gson で変換できる必要があります。 Map, List は利用できます。

    • オプション引数のため、これまでのコードでは指定なしで動作します。

    • Java で書かれたアプリケーションでは SoraMediaChannel のコンストラクタで signalingNotifyMetadata を を指定するには clientId を渡す必要があります。アプリケーションとして指定しない場合には null を渡すことで シグナリング connect メッセージには client_id が含まれません。

  • シグナリングパラメータのフィールド、型を Sora 19.04 に合わせ更新しました

  • gradle.properties.example に Robolectric の設定 android.enableUnitTestBinaryResources=true を追加しました

  • Sora 19.04.0 での connection_id 導入に伴い、ローカルトラック判定を connection_id で行うよう変更しました

    • 以前のバージョンでも動作するよう、offer に connection_id がない場合はこれまでどおり client_id を使います。

  • シグナリング通知機能の network.status に対応しました

  • com.squareup.okhttp3:okhttp を 3.14.1 にアップデートしました

  • io.reactivex.rxjava2:rxandroid を 2.1.1 にアップデートしました

  • io.reactivex.rxjava2:rxjava を 2.2.8 にアップデートしました

CHANGE

  • kotlin-stdlib-jdk7 依存を kotlin-stdlib に変更しました

    • sora-android-sdk の minSdkVersion が 16 であるためです

ADD

  • CameraCapturerFactory に解像度維持を優先するオプションを追加しました

1.8.0

日時:

2019-02-01

対応 Sora:

18.10.5

対応 libwebrtc:

71.16.0

UPDATE

  • libwebrtc を 71.16.0 にアップデートしました

  • Kotlin を 1.3.20 にアップデートしました

  • libwebrtc の M72 をスキップしました

  • com.squareup.okhttp3:okhttp を 3.12.1 にアップデートしました

  • io.reactivex.rxjava2:rxjava を 2.2.6 にアップデートしました

  • Android Studio 3.3 に対応しました

  • com.github.dcendents:android-maven-gradle-plugin を 2.1 にアップデートしました

  • WebRTC 1.0 spec に一部追従しました

    • offerToReceiveAudio/offerToReceiveVideo から Transceiver API に変更しました。

    • onTrack, onRemoveTrack は libwebrtc android sdk で対応されていないため見送っています。

CHANGE

  • SDP semantics のデフォルト値を Unified Plan に変更しました

    • upstream のシグナリングで audio や video が false の場合でも、他の配信者の audio や video のトラックを受信する SDP が Sora から offer されるように変更されます。

    • Plan B のときには audio false のときには audio track が SDP に含まれず、 video が false のときには video のトラックが含まれていませんでした。 これは Plan B の制限による挙動でした。

1.7.1

日時:

2018-10-18

対応 Sora:

18.04.12

対応 libwebrtc:

70.14.0

UPDATE

  • libwebrtc を 70.14.0 にアップデートしました

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

  • com.squareup.okhttp3:okhttp を 3.11.0 にアップデートしました

  • io.reactivex.rxjava2:rxandroid を 2.1.0 にアップデートしました

  • io.reactivex.rxjava2:rxjava を 2.2.2 にアップデートしました

  • io.reactivex.rxjava2:rxkotlin を 2.3.0 にアップデートしました

ADD

  • Unified Plan に試験的に対応しました

    • 正式対応ではありません

FIX

  • Sora で turn が無効の場合にシグナリングに失敗する問題を修正しました

1.7.0

日時:

2018-08-14

対応 Sora:

18.04.10

対応 libwebrtc:

68.10.1.1

UPDATE

  • Android Studio 3.1.4 に対応しました

  • libwebrtc を 68.10.1.1 にアップデートしました

ADD

  • webrtc-buildのバージョンと webrtc git のハッシュのログを追加しました

CHANGE

  • SoraSerivceUtil.isRunning を削除しました

    • Oreo で ActivityManager#getRunningSerivces が deprecated になったため

    • このユーティリティを利用していた場合はソースコードの変更が必要です

1.6.0

日時:

2018-07-24

対応 Sora:

18.04.10

対応 libwebrtc:

67.28.0.1

UPDATE

  • Android Studio 3.1.3 に対応しました

  • Kotlin を 1.2.51 にアップデートしました

  • PeerConnectionFactory を builder から作るよう修正しました

  • libwebrtc を 67.28.0.1 にアップデートしました

ADD

  • 時雨堂ビルドの libwebrtc AAR を jitpack.io 上にホストし、本 SDK からは build.gradle での依存としました

    • 本 SDK への依存設定に transitive を使っていないアプリケーションは別途依存を追加する必要があります

  • connect オプションの spotlight に対応しました

  • 映像の解像度の選択肢を増やしました

  • SoraMediaOption に enableCpuOveruseDetection を追加しました

  • SoraMediaOption に sdpSemantics を追加しました

    • ただし動作確認は Plan-B (PLAN_B) のみ

  • SoraMediaOption に tcpCandidatePolicy を追加しました - もともと内部的に用いていたオプションの格上げです - デフォルト値はこれまでと同様に ENABLED としています

  • NotificationMessageclientId を追加しました

    • 必須項目です (SDK が設定します)

  • NotificationMessageaudio, video, metadata, metadataList, channelId, spotlightId, fixed を追加しました

    • すべてオプション(nullable)項目です

  • SoraMediaChannel にシグナリング通知機能のメッセージ受信コールバックを追加しました

    • onNotificationMessage を実装することで独自のメッセージ処理が可能です

### CHANGE

  • NotificationMessagerole, connectionTime, numberOfConnections, numberOfUpstreamConnections, numberOfDownstreamConnections フィールドをオプション(nullable)に変更しました

    • 型として下位互換性を壊す変更です これらのフィールドを参照しているソースコードは修正の必要があります

  • スナップショット機能を削除しました

  • MediaStream#label() の代わりに id を使うよう変更しました

    • libwebrtc の変更の影響です

    • label() を用いているアプリケーションコードは id に変更してください

### FIX

  • 自分のストリーム判断に配信ストリームがある場合のみの条件があったが、マルチストリームの場合という 条件に置き換えました

    • single stream (pub, sub) およびマルチストリームではこの変更は影響ありません

    • スポットライトのみ影響があり、視聴モードでも自分の clientId が MSID のストリームについて onAddRemotestream イベントを発火させないようになっています

1.5.4

日時:

2018-03-28

対応 Sora:

18.02.2

対応 libwebrtc:

66.8.1

UPDATE

  • PeerConnectionFactory.createPeerConnection/3 deprecated に対応しました

1.5.3

日時:

2018-03-28

対応 Sora:

18.02.2

対応 libwebrtc:

66.8.1

UPDATE

  • libwebrtc を 66.8.1 にアップデートしました

  • Kotlin を 1.2.31 にアップデートしました

1.5.2

日時:

2018-03-07

対応 Sora:

18.02

対応 libwebrtc:

64.5.0

UPDATE

  • libwebrtc を 64.5.0 にアップデートしました

  • deprecated warning を修正しました

  • Signaling connect 時に client offer の SDP を追加しました

  • Kotlin 1.2.30 にアップデートしました

1.5.1

日時:

2018-02-16

対応 Sora:

18.01

対応 libwebrtc:

63.13.0

ADD

  • Sora Android SDK の API ドキュメントを追加しました

1.5.0

日時:

2018-02-15

対応 Sora:

18.01

対応 libwebrtc:

63.13.0

ADD

  • Sora のプッシュ API のメッセージを SoraMediaChannel.Listener に伝える機能を追加しました

1.4.1

日時:

2017-12-22

対応 Sora:

17.10

対応 libwebrtc:

63.13.0

UPDATE

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

1.4.0

日時:

2017-12-22

対応 Sora:

17.10

対応 libwebrtc:

63.13.0

UPDATE

  • Android Studio 3.0 に対応しました

    • gradle: 4.1

    • android-maven-gradle-plugin: 2.0

  • Kotlin 1.2.10 にアップデートしました

1.3.1

日時:

2017-12-21

対応 Sora:

17.10

対応 libwebrtc:

63.13.0

UPDATE

  • libwebrtc を 63.13.0 にアップデートしました

  • Kotlin 1.1.51 にアップデートしました

1.3.0

日時:

2017-09-22

対応 Sora:

17.08

対応 libwebrtc:

61.5.0

FIX

  • 自身が down を持たない場合に multistream が有効にならない現象を修正しました

  • 自身が up を持たない場合にリモートストリームが通知されない現象を修正しました

1.2.0

日時:

2017-09-21

対応 Sora:

17.08

対応 libwebrtc:

61.5.0

UPDATE

  • libwebrtc のバージョンをアップデートしました

1.1.0

日時:

2017-09-07

対応 Sora:

17.08

対応 libwebrtc:

60.11.0

UPDATE

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

ADD

  • sources jar 生成の設定を追加しました

  • libwebrtc.aar ダウンロードを gradle task 化しました

  • JitPack でにビルドと配布に対応しました

CHANGE

  • libwebrtc.aar を sora-android-sdk AAR に含めました

1.0.0

日時:

2017-08-30

対応 Sora:

17.08

対応 libwebrtc:

60.11.0

Sora Android SDK 最初のリリースです。

© Copyright 2018-2023, Shiguredo Inc. Created using Sphinx 7.3.7