古いリリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
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_version
とuser_agent
を追加したシグナリング connect メッセージに
audio.opus_params
を追加した1:N サイマルキャストの視聴に対応した
CHANGE¶
時雨堂ビルドの libwebrtc ライブラリ名称を変更した - 旧:
sora-webrtc-android
、 新:shiguredo-webrtc-android
-transitive = true
でsora-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¶
SoraMediaOption
にaudioBitrate
設定を追加したSoraMediaOption
にaudioOption: 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)することが分かっています。
関連 issue: 10713 - Transceiver/encodings based simulcast does not work in desktop sharing
closed になっているため、libwebrtc の最新版では修正されている可能性があります。
getStats を定期的に実行し統計を取得する API を追加した
CHANGE¶
org.webrtc.PeerConnectionFactory
に明示的にJavaAudioDeviceModule
を渡すように変更したlibwebrtc にて
org.webrtc.LegacyAudioDeviceModule
が無くなり、明示的に audio device module を 指定するよう変更されたため。7452 - Move Android audio code to webrtc/sdk/android - webrtc - Monorail - https://bugs.chromium.org/p/webrtc/issues/detail?id=7452
Use JavaAudioDeviceModule as default (Ib99adc50) · Gerrit Code Review - https://webrtc-review.googlesource.com/c/src/^/123887
org.webrtc.audio.JavaAudioDeviceModule
のHardwareAcousticEchoCanceler
,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 に対応した
SoraMediaOption
にVideoEncoderFactory
、VideoDecoderFactory
を指定するオプションを追加した[プレビュー版]
SoraMediaChannel
のコンストラクタに@JvmOverloads
を追加し、Java からオーバーロードされて見えるよう 変更したこれにより第 6 引数のタイムアウト値を省略したコンストラクタを呼び出せるようになります。
シグナリング connect メッセージの metadata を文字列だけでなく任意の型を受け付けるよう変更した
値は gson で変換できる必要があります。
Map
,List
は利用できます。文字列化された JSON を受け取った場合には、1.8.0 までと同様に、そのまま文字列値として取扱います。
シグナリング connect メッセージに
client_id
フィールドを追加した - Sora 19.04 より前のバージョンでは、このフィールドを文字列に設定するとエラーになるシグナリング connect メッセージの
signaling_notify_metadata
をSoraMediaChannel
コンストラクタから 指定できるようにした値は gson で変換できる必要があります。
Map
,List
は利用できます。オプション引数のため、これまでのコードでは指定なしで動作します。
Java で書かれたアプリケーションでは
SoraMediaChannel
のコンストラクタでsignalingNotifyMetadata
を を指定するにはclientId
を渡す必要があります。アプリケーションとして指定しない場合には null を渡すことで シグナリング connect メッセージにはclient_id
が含まれません。
シグナリングパラメータのフィールド、型を Sora 19.04 に合わせ更新した
型定義は https://sora-doc.shiguredo.jp/SIGNALING_TYPE を参照してください。
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 をスキップした
バグにより AAR のビルドは出来るが動作しないためです。
そのバグは M73 branch では修正済みです: https://webrtc-review.googlesource.com/c/112283
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
としていますNotificationMessage
にclientId
を追加した必須項目です (SDK が設定します)
NotificationMessage
にaudio
,video
,metadata
,metadataList
,channelId
,spotlightId
,fixed
を追加したすべてオプション(nullable)項目です
SoraMediaChannel
にシグナリング通知機能のメッセージ受信コールバックを追加したonNotificationMessage
を実装することで独自のメッセージ処理が可能です
### CHANGE
NotificationMessage
のrole
,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 最初のリリースです。