古いリリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2024.3.0, 2024.3.1¶
- 日時:
2024-08-30
- 対応 Sora:
2024.1.0 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m127.6533.1.1
[UPDATE] libwebrtc を m127.6533.1.1 にアップデートしました
[UPDATE] Android Gradle Plugin (AGP) を 8.5.0 にアップデートしました
[UPDATE] Gradle を 8.7 にアップデートしました
[UPDATE] Kotlin のバージョンを 1.9.25 にアップデートしました
[UPDATE] 依存ライブラリーのバージョンをアップデートしました
com.google.code.gson:gson を 2.11.0 にアップデートしました
com.squareup.okhttp3:okhttp を 4.12.0 にアップデートしました
org.jetbrains.kotlinx:kotlinx-coroutines-android を 1.8.1 にアップデートしました
androidx.test:core を 1.6.1 にアップデートしました
org.robolectric:robolectric を 4.13 にアップデートしました
[FIX] Offer メッセージの encodings 内 maxFramerate の値が整数でない値であった場合にエラーとなる問題を修正
Offer メッセージでは W3C の定義に合わせて maxFramerate を Double で定義していますが、 libwebrtc では Integer で定義されているため、 Offer メッセージに設定された maxFramerate を int にキャストして設定するように修正しました
[FIX] Offer メッセージでサイマルキャスト有効を指定した場合にサイマルキャストが有効にならない問題を修正しました
2024.2.0¶
- 日時:
2024-04-23
- 対応 Sora:
2023.2.0 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m122.6261.1.0
[UPDATE] libwebrtc を m122.6261.1.0 にアップデートしました
libwebrtc の AV1 デコード機能の脆弱性対応が含まれています
2024.1.0, 2024.1.1¶
- 日時:
2024-03-19
- 対応 Sora:
2023.2.0 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m121.6167.4.0
[CHANGE]
NotificationMessageのmetadata_listを削除しました2022.1.0 の Sora で metadata_list が廃止されたためあわせて廃止します
metadata_listはdataに名称が変更されています
[CHANGE]
NotificationMessageのchannel_idを削除しました未使用項目であり、値が設定されない項目のため削除しました
[UPDATE] 転送フィルターの項目追加に対応しました
versionが指定できるようになりましたmetadataが指定できるようになりました
[UPDATE] 解像度に
qHD(960x540, 540x960) を追加しました[UPDATE] システム条件を更新しました
Android Studio 2023.2.1 以降
WebRTC SFU Sora 2023.2.0 以降
[UPDATE] libwebrtc を m121.6167.4.0 にアップデートしました
[ADD] 映像コーデックに
H265を追加しました[FIX] connect メッセージに設定するバージョンの取得方法を変更しました
開発中のブランチでの出力値が意図せぬ結果になるため修正しました
リリースされた Sora Android SDK を利用している場合、この問題は発生しません
[FIX]
ForwardingFilterのactionを未指定にできるようにしました[FIX]
NotificationMessageに項目を追加しましたsession_idkinddestination_connection_idsource_connection_idrecv_connection_idsend_connection_idstream_id
2023.2.0¶
- 日時:
2023-08-29
- 対応 Sora:
2023.1.0 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m115.5790.8.0
[UPDATE] システム条件を更新しました
Android Studio 2022.2.1 以降
WebRTC SFU Sora 2023.1.0 以降
[UPDATE] libwebrtc を 115.5790.8.0 にアップデートしました
[ADD] 転送フィルター機能を追加しました
詳細は 転送フィルター機能 をご確認ください
[ADD] scalability mode に対応しました
VP9 / AV1 のサイマルキャストに対応可能になりました
[ADD] 映像コーデックパラメータを追加しました
SoraMediaOptionにvideoVp9Params,videoAv1Params,videoH264Paramsを追加しました詳細は 映像コーデックパラメーターの設定 をご確認ください
2023.1.0¶
- 日時:
2023-04-05
- 対応 Sora:
2022.2.0 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m112.5615.1.0
[CHANGE] type: offer の mid を必須とする修正をしました
この修正の結果、 type: offer に mid が含まれない場合は、エラーになります
最新の Sora をご利用であれば問題は発生しません
[UPDATE] システム条件を更新しました
Android Studio 2021.3.1 以降
WebRTC SFU Sora 2022.2.2 以降
[UPDATE] Gradle を 7.6.1 にアップデートしました
[UPDATE] 依存ライブラリーのバージョンをアップデートしました
org.jetbrains.dokka:dokka-gradle-plugin を 1.8.10 にアップデートしました
com.android.tools.build:gradle を 7.4.2 にアップデートしました
com.github.ben-manes:gradle-versions-plugin を 0.46.0 にアップデートしました
org.jlleitschuh.gradle:ktlint-gradle を 11.3.1 にアップデートしました
com.google.code.gson:gson を 2.10.1 にアップデートしました
androidx.test:core を 1.5.0 にアップデートしました
org.robolectric:robolectric: を 4.9.2 にアップデートしました
[UPDATE] libwebrtc を 112.5615.1.0 にアップデートしました
[UPDATE] 映像コーデックに
AV1を追加しました[ADD]
SoraMediaOptionにaudioStreamingLanguageCodeを追加しました[FIX] テストコード内に廃止された role が残っていたため修正しました
[FIX]
PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLYの設定を行なっていましたが Sora がネットワーク変更に対応しておらず不要な設定であるため削除しました
2022.4.0¶
- 日時:
2022-09-16
- 対応 Sora:
2022.1.1 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m105.5195.0.0
[CHANGE] type: offer の mid を必須とする修正をしました
この修正の結果、 type: offer に mid が含まれない場合は、エラーになります
最新の Sora をご利用であれば問題は発生しません
[UPDATE] libwebrtc を 105.5195.0.0 にアップデートしました
[UPDATE] compileSdkVersion を 32 にアップデートしました
[UPDATE] targetSdkVersion を 32 にアップデートしました
[UPDATE] Kotlin のバージョンを 1.7.10 にアップデートしました
[UPDATE] Gradle を 7.5.1 にアップデートしました
[UPDATE] 依存ライブラリーのバージョンをアップデートしました
com.android.tools.build:gradle を 7.2.2 にアップデートしました
org.jetbrains.kotlin:kotlin-gradle-plugin を 1.7.10 にアップデートしました
org.ajoberstar.grgit:grgit-gradle を 5.0.0 にアップデートしました
org.jetbrains.dokka:dokka-gradle-plugin を 1.7.10 にアップデートしました
com.github.ben-manes:gradle-versions-plugin を 0.42.0 にアップデートしました
org.jlleitschuh.gradle:ktlint-gradle を 10.3.0 にアップデートしました
com.pinterest:ktlint を 0.45.2 にアップデートしました
com.google.code.gson:gson を 2.9.1 にアップデートしました
com.squareup.okhttp3:okhttp を 4.10.0 にアップデートしました
org.jetbrains.kotlinx:kotlinx-coroutines-android を 1.6.4 にアップデートしました
org.robolectric:robolectric を 4.8.1 にアップデートしました
[FIX] mid を nullable に変更しました
develop で開発中に発生した不具合であり、リリース済みの Android SDK でこの問題は発生しません
「type: offer の mid を必須にする」の対応で role が recvonly の時にエラーとなる不具合の修正です
[FIX] offer で受信した encodings が反映されない不具合を修正しました
develop で開発中に発生した不具合であり、リリース済みの Android SDK でこの問題は発生しません
[FIX] EGLContext が取れなかった場合、DefaultVideoDecoderFactory, SoraDefaultVideoEncoderFactory を使用するよう修正しました
EGLContext が取れなかった場合の Decoder を SoftwareVideoDecoderFactory から DefaultVideoDecoderFactory に変更しました
EGLContext が取れなかった場合の Encoder を SoftwareVideoEncoderFactory から SoraDefaultVideoEncoderFactory に変更しました
EGLContext は null でも Hardware を使用する MediaCodec は動作するため Hardware も動作可能な DefaultVideoDecoderFactory, SoraDefaultVideoEncoderFactory に変更する対応です
2022.3.0¶
- 日時:
2022-06-29
- 対応 Sora:
2022.1.0 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m103.5060.4.0
[CHANGE]
SoraMediaOptionにhardwareVideoEncoderResolutionAdjustmentを追加しましたHW エンコーダーに入力されるフレームの解像度が指定されたピクセル数の倍数になるように調整します。デフォルト値は 16 です。このオプションを実装した経緯は解像度が 16 の倍数でない場合、 HW エンコーダーの初期化がエラーになる変更が libwebrtc のメインストリームに入ったことによります。
Sora Android SDK では libwebrtc にパッチを当て、上記の HW エンコーダー初期化時の解像度のチェックを無効化しています。そのため、このフラグを
SoraVideoOption.ResolutionAdjustment.NONEに設定することで、従来通り、解像度を調整することなく HW エンコーダーを利用できます。加えて、解像度調整ありでエンコーダーの初期化またはエンコード処理に失敗した際に、解像度調整なしで操作をリトライする処理を追加しています。
Android OS 11 の Xperia 5 II で VGA のサイマルキャストを H.264 で送信しようとした際、解像度調整ありの場合は HW エンコーダーの初期化が失敗するが、解像度調整なしの場合は成功する現象を確認したためです。
[UPDATE]
SoraMediaOption.enableSpotlight()の引数にenableSimulcastを追加し、サイマルキャスト無効の状態でスポットライト機能を利用できるようにしました[UPDATE] libwebrtc を 103.5060.4.0 にアップデートしました
[UPDATE] 依存ライブラリー org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9 を追加しました
[UPDATE] システム条件を Android Studio 2021.2.1 にアップデートしました
[ADD]
SoraMediaChannelにproxyを追加し、接続時に HTTP プロキシの設定を追加できるようにしました詳細は HTTP プロキシ・サーバーの設定 をご確認ください
[ADD]
SoraMediaChannelにbundleIdを追加しました
2022.2.0¶
- 日時:
2022-04-04
- 対応 Sora:
2021.2.1 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m96.4664.2.1
[CHANGE] Sora で廃止となった以下のフィールドを削除しました
NotificationMessage.numberOfUpstreamConnectionsNotificationMessage.numberOfDownstreamConnectionsChannelAttendeesCount.numberOfUpstreamsChannelAttendeesCount.numberOfDownstreams
[UPDATE]
SoraMediaChannelにcontactSignalingEndpointを追加しました最初に type: connect を送信したエンドポイントが設定されます
[UPDATE]
SoraMediaOptionにroleを追加しましたtype: connect の role を明示的に指定できるようになりました
DataChannel を利用したリアルタイムメッセージングのみで接続する ときに利用されることを想定しています
未指定の場合は、従来通り、 SDK が role を自動的に決定しますので影響はありません
[ADD] メッセージング機能に対応しました
詳細は メッセージング機能 をご確認ください
[FIX]
SoraMediaChannel.ListenerにonOfferMessageを追加しましたtype: offer に含まれる metadata などにアクセスできるよう修正しました
2022.1.0¶
- 日時:
2022-01-12
- 対応 Sora:
2021.2.0 以降
- 対応 Android:
5.0 以降
- 対応 libwebrtc:
m96.4664.2.1
[CHANGE] スポットライトレガシー機能を廃止しました
[UPDATE] libwebrtc を 96.4664.2.1 アップデートしました
[UPDATE] dokka を 1.5.31 にアップデートしました
[ADD] 複数シグナリング URL が指定できるようになりました
[ADD] redirect メッセージに対応しました
[ADD] type: disconnect に reason を追加しました
Sora クライアント要求仕様 に紐づく修正です
[FIX] 視聴のみかつ H.264 した場合に接続できない問題についてのワークアラウンドを削除しました
SoraMediaOption.videoUpstreamContext が無く SoraMediaOption.videoDownstreamContext がある場合はコーデック指定に依らず、 DefaultVideoEncoderFactory を使用するように変更しています
[FIX] libwebrtc のアップデート後に発生するようになったサイマルキャストのクラッシュを修正しました
SimulcastVideoEncoderFactoryWrapper.kt の Fallback クラスが原因で java.lang.UnsupportedOperationException が発生していました
調査の結果、 Fallback クラスを削除できることがわかったため、その方向で修正をしました
libwebrtc に適用している Android のサイマルキャスト対応のパッチを更新し、 SimulcastVideoEncoderFactory の fallback に null を指定できるように修正しました
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_FAILEDICE_CLOSED_BY_SERVER=>PEER_CONNECTION_CLOSEDICE_DISCONNECTED=>PEER_CONNECTION_DISCONNECTED
[FIX]
NotificationMessageにturnTransportTypeを追加しました[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.numberOfUpstreamsChannelAttendeesCount.numberOfDownstreamsNotificationMessage.numberOfUpstreamConnectionsNotificationMessage.numberOfDownstreamConnections
[FIX] NotificationMessage に漏れていた以下のフィールドを追加しました
authn_metadataauthz_metadatachannel_sendrecv_connectionschannel_sendonly_connectionschannel_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:junitを4.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.ListenerにonWarningメソッドを追加しましたこのバージョンでは
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:okhttp4.2.2 がminSdkVersion21 以上にのみ対応するため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 最初のリリースです。