本文にスキップする
Version: 7.0

リリースノート

Android向けPlanetKit 7.0のリリースノートです。

PlanetKit 7.0

リリース日:2026-04-24

カスタムオーディオシンクの改善

従来のAudioSinkインターフェースをより簡潔なPlanetKitCustomAudioSinkクラスに置き換えました。今後は、オーディオ処理アプリケーションでカスタムオーディオシンクをより簡単に実装できます。

API

変更
  • PlanetKitCall interface 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    fun setAudioSink(audioSink: AudioSink?)fun setCustomAudioSink(audioSink: PlanetKitCustomAudioSink)fun clearCustomAudioSink()
  • PlanetKitConference interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun setAudioSink(audioSink: AudioSink?)fun setCustomAudioSink(audioSink: PlanetKitCustomAudioSink)fun clearCustomAudioSink()
追加
  • PlanetKitCustomAudioSink class 1-to-1 callGroup call
    • protected fun getFrameData(sampleRate: PlanetKitAudioSampleRate, sampleType: PlanetKitAudioSampleType, sampleCount: Int): AudioFrame
    • protected fun putUserAcousticEchoCancellerReference(data: AudioFrame): Boolean
  • PlanetKitCall interface 1-to-1 call
    • fun clearCustomAudioSink()
  • PlanetKitConference interface Group call
    • fun clearCustomAudioSink()
削除
  • AudioSink class 1-to-1 callGroup call
  • DefaultSpeakerAudioSink class 1-to-1 callGroup call

サンプルコード

object CustomAudioSink : PlanetKitCustomAudioSink() {
override fun putFrameData(frame: AudioFrame) {
// Process audio frame data
val processedData = processAudioFrame(frame)

// Use acoustic echo canceller reference if needed
putUserAcousticEchoCancellerReference(frame)
}
}

// Set custom audio sink
call.setCustomAudioSink(CustomAudioSink)

// Clear when done
call.clearCustomAudioSink()

pauseMyVideo()からreasonパラメーターを削除

pauseMyVideoメソッドからreasonパラメーターを削除しました。

  • ユーザーが直接ビデオを一時停止する場合、その理由は常に暗黙的に「by user」なので、reasonパラメーターは必要ありません。
  • reasonパラメーターを削除することでAPIがシンプルになり、reasonにどの値を使うべきか悩む必要がなくなりました。

API

変更
  • PlanetKitCall interface 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    fun pauseMyVideo(reason: PlanetKitVideoPauseReason, userData: Any?, callback: PlanetKitRequestCallback?): Booleanfun pauseMyVideo(userData: Any?, callback: PlanetKitRequestCallback?): Boolean
  • PlanetKitConference interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun pauseMyVideo(reason: PlanetKitVideoPauseReason, userData: Any?, callback: PlanetKitRequestCallback?): Booleanfun pauseMyVideo(userData: Any?, callback: PlanetKitRequestCallback?): Boolean

CallListenerインターフェースの改善

1対1通話で使用するCallListenerインターフェースの継承構造を改善しました。

  • 従来は、VerifyCallListenerAcceptCallListenerMakeCallListenerがすべての通話関連コールバックメソッドを含む基盤CallListenerインターフェースを継承していました。これにより、特定の用途では実際に呼び出されないメソッド(無効なメソッド)まで含まれる問題が発生し、ユーザーが混乱することがありました。
  • 今後は、各リスナー(VerifyCallListenerAcceptCallListenerMakeCallListener)は自分の目的に合った有効なメソッドのみを提供します。

API

変更
  • VerifyListener interface 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    interface VerifyListener: CallListenerinterface VerifyListener
削除
  • CallListener interface 1-to-1 call
    • fun onVerified(call: PlanetKitCall, peerStartMessage: PlanetKitCallStartMessage?, peerUseResponderPreparation: Boolean)
    • fun onWaitConnected(call: PlanetKitCall)

PlanetKitCameraManager.CameraTypeChangedListenerインターフェースの改善

PlanetKitCameraManager.CameraTypeChangedListenerは、booleanフラグの代わりにenumベースのカメラタイプ検出を使用します。

  • 今後は、前面カメラと背面カメラだけでなく、外部USBカメラもサポートできます。
  • カメラの切り替えに関するより詳細な情報を提供し、将来追加されるカメラタイプをサポートすることも容易になりました。

API

変更
  • PlanetKitCameraManager.CameraTypeChangedListener interface 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0.0
    fun onChanged(isFrontCamera: Boolean)fun onChanged(cameraType: PlanetKitCameraType)

サンプルコード

private val cameraTypeChangedListener = PlanetKitCameraManager.CameraTypeChangedListener { cameraType ->
when (cameraType) {
PlanetKitCameraType.FRONT -> {
// Handle front camera
}
PlanetKitCameraType.BACK -> {
// Handle back camera
}
PlanetKitCameraType.EXTERNAL -> {
// Handle external USB camera
}
}
}

PlanetKit.getCameraManager().addCameraTypeChangedListener(cameraTypeChangedListener)

グループ通話で画面共有中止の理由を追加

グループ通話の画面共有イベントコールバックにdisabledReasonパラメーターを追加しました。これにより、アプリケーションでユーザーに画面共有が中止となった理由をより詳細に提供でき、さまざまな終了状況を適切に処理する際の参考にできます。

API

変更
  • ConferenceListener interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun onScreenShareUpdated(peer: PlanetKitConferencePeer, subgroupName: String?, screenShareState: PlanetKitScreenShareState)fun onScreenShareUpdated(peer: PlanetKitConferencePeer, subgroupName: String?, screenShareState: PlanetKitScreenShareState, disabledReason: Int?)
  • PlanetKitPeerControl.PeerControlListener interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun onScreenShareUpdated(peer: PlanetKitConferencePeer, state: PlanetKitScreenShareState, subgroupName: String?)fun onScreenShareUpdated(peer: PlanetKitConferencePeer, state: PlanetKitScreenShareState, subgroupName: String?, disabledReason: Int?)
  • PlanetKitPeerScreenShareView.PeerScreenShareViewListener interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun onScreenShareUpdated(peer: PlanetKitConferencePeer, state: PlanetKitScreenShareState, subgroupName: String?)fun onScreenShareUpdated(peer: PlanetKitConferencePeer, state: PlanetKitScreenShareState, subgroupName: String?, disabledReason: Int?)
  • PlanetKitPeerView.PeerViewListener interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun onScreenShareUpdated(peer: PlanetKitConferencePeer, state: PlanetKitScreenShareState, subgroupName: String?)fun onScreenShareUpdated(peer: PlanetKitConferencePeer, state: PlanetKitScreenShareState, subgroupName: String?, disabledReason: Int?)

サンプリングレートを使用するオーディオAPIの改善

タイプの安定性を向上させるために、整数ベースのサンプリングレートを構造化されたenum方式に置き換えました。

  • 新しいPlanetKitAudioSampleRate enumは、16kHz、32kHz、48kHzのサンプリングレートを明確にサポートします。
  • APIの一貫性が向上し、サンプリングレートをより明示的に処理することでエラーを回避できます。

API

変更
  • AudioFrame interface 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0.0
    fun getSamplingRate(): Intfun getSamplingRate(): PlanetKitAudioSampleRate
  • PlanetKitHookedAudio class 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    val sampleRate: Intval sampleRate: PlanetKitAudioSampleRate
追加
  • PlanetKitAudioSampleRate enum class 1-to-1 callGroup call
    • SAMPLE_RATE_16K(16000)
    • SAMPLE_RATE_32K(32000)
    • SAMPLE_RATE_48K(48000)
    • val sampleRate: Int

使用されなくなったAPIの削除

  • 1対1通話とグループ通話設定APIで廃止されたapiKeyパラメーターを削除しました。
  • グループ通話で使用されなくなった複数のピアビデオおよび画面共有制御メソッドを削除しました。

API

削除
  • PlanetKitMakeCallParam data class 1-to-1 call

    • val apiKey: String?
  • PlanetKitMakeCallParam.Builder class 1-to-1 call

    • fun apiKey(apiKey: String): Builder
  • PlanetKitConferenceParam data class Group call

    • val apiKey: String?
  • PlanetKitConferenceParam.Builder class Group call

    • fun apiKey(apiKey: String): Builder
  • PlanetKitConference interface Group call

    • fun requestPeerScreenShare(peer: PlanetKitUser, subgroupName: String?, userData: Any?, callback: PlanetKitVideoRequestCallback?): Boolean
    • fun requestPeerVideo(peer: PlanetKitUser, maxResolution: PlanetKitVideoResolution, userData: Any?, callback: PlanetKitVideoRequestCallback?): Boolean
    • fun requestPeerVideo(peer: PlanetKitUser, maxResolution: PlanetKitVideoResolution): Boolean
    • fun requestPeerVideo(peer: PlanetKitUser, maxResolution: PlanetKitVideoResolution, subgroupName: String?, userData: Any?, callback: PlanetKitVideoRequestCallback?): Boolean
    • fun requestPeerVideo(peer: PlanetKitUser, maxResolution: PlanetKitVideoResolution, subgroupName: String?, userData: Any?, cbResolution: PlanetKitPeerVideoResolutionCallback?): Boolean
    • fun requestPeerVideo(peer: PlanetKitUser, maxResolution: PlanetKitVideoResolution, userData: Any?, cbResolution: PlanetKitPeerVideoResolutionCallback?): Boolean
    • fun stopPeerScreenShare(peer: PlanetKitUser, subgroupName: String?, userData: Any?, callback: PlanetKitVideoRequestCallback?): Boolean
    • fun stopPeerVideo(peer: PlanetKitUser, subgroupName: String?, userData: Any?, callback: PlanetKitVideoRequestCallback?): Boolean
    • fun stopPeerVideo(peer: PlanetKitUser, userData: Any?, callback: PlanetKitVideoRequestCallback?): Boolean
    • fun stopPeerVideo(peer: PlanetKitUser): Boolean

一貫性のためのメディアレシーバーAPIの変更

一貫性を高めるために、分離されていたリスナーインターフェースを統合されたレシーバーインターフェースに置き換えました。

  • 新しいAPIは、相手のメディアを受信することとユーザー自身のメディアを受信することをより明確に区別します。
  • より良いリソース管理とライフサイクル制御のために明示的な解除メソッドを追加しました。

API

変更
  • PlanetKitCall interface 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    fun setOnReceiveVideoListener(listener: OnReceiveVideoListener?)fun setPeerVideoReceiver(receiver: PlanetKitPeerVideoReceiver)fun clearPeerVideoReceiver()
    fun setOnReceiveAudioListener(listener: OnReceiveAudioListener?)fun setPeerAudioReceiver(receiver: PlanetKitAudioReceiver)fun clearPeerAudioReceiver()
    fun setOnSentAudioListener(listener: OnSentAudioListener?)fun setMyAudioReceiver(receiver: PlanetKitAudioReceiver)fun clearMyAudioReceiver()
  • PlanetKitConference interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun setOnReceiveVideoListener(peer: PlanetKitUser, listener: OnReceiveVideoListener?)fun setPeerVideoReceiver(peer: PlanetKitUser, receiver: PlanetKitPeerVideoReceiver)fun clearPeerVideoReceiver(peer: PlanetKitUser)
    fun setOnReceiveAudioListener(listener: OnReceiveAudioListener?)fun setPeerAudioReceiver(receiver: PlanetKitAudioReceiver)fun clearPeerAudioReceiver()
    fun setOnSentAudioListener(listener: OnSentAudioListener?)fun setMyAudioReceiver(receiver: PlanetKitAudioReceiver)fun clearMyAudioReceiver()
追加
  • PlanetKitAudioReceiver interface 1-to-1 callGroup call

    • fun onAudioReceived(data: AudioFrame)
  • PlanetKitPeerVideoReceiver interface Group call

    • fun onPeerVideoReceived(data: PlanetKitVideoFrameData)

API誤字修正

  • 複数のインターフェースとクラス全般を通してパラメーター名が一致しなかった部分を修正しました。
  • クラス属性の大文字と小文字の表記を正しいキャメルケースに合わせて修正しました。

API

変更
  • VerifyListener interface 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    fun onVerified(call: PlanetKitCall, peerStartMessage: PlanetKitCallStartMessage?, peerUseResponderPreparation: Boolean)fun onVerified(call: PlanetKitCall, peerCallStartMessage: PlanetKitCallStartMessage?, peerUseResponderPreparation: Boolean)
  • PlanetKitCallConnectedParam data class 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    val peerStartMessage: PlanetKitCallStartMessage?val peerCallStartMessage: PlanetKitCallStartMessage?
  • PlanetKitUserTypeContainer class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0.0
    val planetkitUserType: PlanetKitUserType?val planetKitUserType: PlanetKitUserType?
  • PlanetKitConferencePublicSubgroupUpdateParam.PlanetKitConferenceSubgroupUpdatedPeer data class Group call

    以前のバージョンPlanetKit 7.0.0
    val subscribedSubGroups: List<String>val subscribedSubgroups: List<String>
    val unsubscribedSubGroups: List<String>val unsubscribedSubgroups: List<String>

短いデータ転送に詳細なエラー報告機能を追加

1対1通話とグループ通話の両方で、sendShortDataに包括的な失敗理由の報告機能を追加しました。

  • 新しいPlanetKitSendShortDataFailReason enumは、開発者がさまざまな失敗シナリオをより効果的に識別し、処理できるように具体的なエラーコードを提供します。
  • 従来の汎用PlanetKitRequestCallbackを詳細な失敗情報を含む専用PlanetKitSendShortDataResultCallbackに置き換えました。
  • 短いデータ転送機能を使用する際に、この機能を利用してエラー処理、デバッグ、情報提供機能を改善できます。

API

追加
  • PlanetKitSendShortDataFailReason enum class 1-to-1 callGroup call

    • NONE(0)
    • INVALID_PARAMETER(1)
    • TOO_LONG_DATA_TYPE(2)
    • TOO_LONG_DATA(3)
    • TOO_FREQUENT(4)
    • TIMEOUT(5)
  • PlanetKitSendShortDataResultCallback interface 1-to-1 callGroup call

    • fun onResult(isSuccess: Boolean, failReason: PlanetKitSendShortDataFailReason, userdata: Any?)
変更
  • PlanetKitCall interface 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    fun sendShortData(type: String, shortData: ByteArray, userData: Any?, callback: PlanetKitRequestCallback?): Booleanfun sendShortData(type: String, shortData: ByteArray, userData: Any?, callback: PlanetKitSendShortDataResultCallback?): Boolean
  • PlanetKitConference interface Group call

    以前のバージョンPlanetKit 7.0.0
    fun sendShortData(targetUser: PlanetKitUser, type: String, shortData: ByteArray, userData: Any?, callback: PlanetKitRequestCallback?): Booleanfun sendShortData(targetUser: PlanetKitUser, type: String, shortData: ByteArray, userData: Any?, callback: PlanetKitSendShortDataResultCallback?): Boolean
    fun sendShortData(type: String, shortData: ByteArray, userData: Any?, callback: PlanetKitRequestCallback?): Booleanfun sendShortData(type: String, shortData: ByteArray, userData: Any?, callback: PlanetKitSendShortDataResultCallback?): Boolean