リリースノート
WebPlanetKit 5.3のリリースノートです。
WebPlanetKit 5.3
リリース日:2024-12-23
MediaStreamManager
を追加
- メディアデバイスを使用して
MediaStream
を簡単に作成し、管理できるMediaStreamManager
クラスを追加しました。 - 作成した
MediaStreamManager
インスタンスはMakeCallParams
やVerifyCallParams
、ConferenceParams
、EnableVideoOptions
に簡単に適用でき、これによってWebPlanetKitとスムーズに相互作用できます。
API
追加
MediaStreamManager
class 1-to-1 callGroup callMakeCallParams
data class 1-to-1 callvar mediaStreamManager?: MediaStreamManager
VerifyCallParams
data class 1-to-1 callvar mediaStreamManager?: MediaStreamManager
ConferenceParams
data class Group callvar mediaStreamManager?: MediaStreamManager
EnableVideoOptions
data class 1-to-1 callGroup callvar mediaStreamManager?: MediaStreamManager
サンプルコード
-
MediaStreamManager
の使用例// Init MediaStreamManager
import { MediaStreamManager } from "@line/planetKit";
const mediaStreamManager = new MediaStreamManager();
// Getting default media device ID
const audioInputDevices = mediaStreamManager.getAudioInputDevices();
const defaultAudioInputDeviceId = audioInputDevices[0].deviceId;
const videoInputDevices = mediaStreamManager.getVideoInputDevices();
const defaultVideoInputDeviceId = videoInputDevices[0].deviceId;
// Create media stream with param
const mediaStreamParam = {
audioInputDeviceId: defaultAudioInputDeviceId,
videoInputDeviceId: defaultVideoInputDeviceId,
};
const mediaStream = await mediaStreamManager.createMediaStream(mediaStreamParam);
// Apply to WebPlanetKit
const conferenceParams = {
...,
mediaStreamManager: mediaStreamManager
}
planetKit.joinConference(conferenceParams);
さらに多くのAPIを確認するには、APIリファレンスを参照してください。
バーチャル背景機能を追加
- WebPlanetKitのバーチャル背景機能をサポートするためのplanet-kit-virtual-backgroundプラグインを追加しました。WebPlanetKitにバーチャル背景機能を適用するには、このプラグインをダウンロードする必要があります。
- バーチャル背景機能を利用すると、ビデオストリームの背景から人を感知して分離した後、背景をぼやかしたり、イメージに置き換えるなどの効果を適用できます。
- Safariブラウザーではバーチャル背景機能をサポートしていません。
API
追加
-
Call
class 1-to-1 callfunction registerVirtualBackground(virtualBackground: VirtualBackground)
function startVirtualBackgroundBlur(canvasElement?: HTMLCanvasElement, blurRadius?: number)
function startVirtualBackgroundImage(canvasElement: HTMLCanvasElement, image: HTMLImageElement|ImageBitmap)
function stopVirtualBackground()
function getVirtualBackgroundVideoStream(frameRate?: number)
function changeVirtualBackgroundVideoElement(videoElement: HTMLVideoElement)
function changeVirtualBackgroundCanvasElement(canvasElement: HTMLCanvasElement)
function isVirtualBackgroundActive()
-
Conference
class Group callfunction registerVirtualBackground(virtualBackground: VirtualBackground)
function startVirtualBackgroundBlur(canvasElement?: HTMLCanvasElement, blurRadius?: number)
function startVirtualBackgroundImage(canvasElement: HTMLCanvasElement, image: HTMLImageElement|ImageBitmap)
function stopVirtualBackground()
function getVirtualBackgroundVideoStream(frameRate?: number)
function changeVirtualBackgroundVideoElement(videoElement: HTMLVideoElement)
function changeVirtualBackgroundCanvasElement(canvasElement: HTMLCanvasElement)
function isVirtualBackgroundActive()
-
MediaStreamManager
class 1-to-1 callGroup callfunction registerVirtualBackground(virtualBackground: VirtualBackground)
function startVirtualBackgroundBlur(canvasElement?: HTMLCanvasElement, blurRadius?: number)
function startVirtualBackgroundImage(canvasElement: HTMLCanvasElement, image: HTMLImageElement|ImageBitmap)
function stopVirtualBackground()
function getVirtualBackgroundVideoStream(frameRate?: number)
function changeVirtualBackgroundVideoElement(videoElement: HTMLVideoElement)
function changeVirtualBackgroundCanvasElement(canvasElement: HTMLCanvasElement)
function isVirtualBackgroundActive()
バーチャル背景機能の使用方法
例:planet-kit
を設定する
// Import SDK
import { Conference } from "@line/planet-kit";
import PlanetKitVirtualBackground from "@line/planet-kit-virtual-background";
// Create a planet-kit instance (This example is for group call).
const planetKit = new Conference();
// Create a planet-kit-virtual-background instance.
const virtualBackground = new PlanetKitVirtualBackground();
// Register the planet-kit-virtual-background with the planet-kit.
const conferenceParams = {...};
planetKit.joinConference(conferenceParams).then(() => {
planetKit.registerVirtualBackground(virtualBackground);
});
PlanetKitにPlanetKitVirtualBackgroundを登録すると、バーチャル背景機能を使用できます。バーチャル背景に関して、さらに多くの例とAPIを確認するには、planet-kit-virtual-backgroundとAPIリファレンスを参照してください。
通話試行関数のエラー処理方法の改善
- Planet Cloudに対する通話を試みる最中にエラーが発生した場合、なぜエラーが発生したのか詳細な理由を提供するために
StartFailReason
を追加しました。 - 通話試行関数(
makeCall
、verifyCall
、joinConference
)で構造化されたエラーオブジェクトを通じて、エラー発生の詳細な理由を提供します。
API
追加
START_FAIL_REASON
enum 1-to-1 callGroup callMakeCallError
data class 1-to-1 callVerifyCallError
data class 1-to-1 callJoinConferenceError
data class Group call
削除
KIT_DISCONNECT_REASON
enum 1-to-1 callGroup callPLANETKIT_DISCONNECT_REASON_WEB_BROWSER_NOT_SUPPORTED: 1612
変更
-
返却値のタイプ変更
以前バージョン WebPlanetKit 5.3 備考 function makeCall(params)
function makeCall(params): Promise
throws {MakeCallError}
1対1通話 function verifyCall(params)
function verifyCall(params): Promise
throws {VerifyCallError}
1対1通話 function joinConference(params)
function joinConference(params): Promise
throws {JoinConferenceError}
グループ通話
通話音機能の追加
- 通話音機能を追加しました。通話音のURLを設定すると、WebPlanetKitが適切な時点でその通話音を再生します。
API
追加
-
MakeCallParams
data class 1-to-1 callvar ringbackToneUrl?: string
var endToneUrl?: string
var playEndToneRegardlessOfCallState?: boolean
-
VerifyCallParams
data class 1-to-1 callvar ringToneUrl?: string
var endToneUrl?: string
var playEndToneRegardlessOfCallState?: boolean
-
ConferenceParams
data class Group callvar endToneUrl?: string
var playEndToneRegardlessOfCallState?: boolean
デバッグ通知機能の追加
- ユーザーに内部警告状況やデバッグ情報を提供するためのデバッグ通知機能を追加しました。
- 以前、
evtInnerLog
を通じて転送していたすべてのイベントをKitDelegate
のevtDebugNotice
イベントに切り替えました。
API
追加
DEBUG_NOTICE
enum 1-to-1 callGroup callKitDelegate
protocol 1-to-1 callGroup callInitConfig
data class 1-to-1 callGroup callvar delegate?: KitDelegate
削除
MakeCallDelegate
protocol 1-to-1 callevtInnerLog(innerLogObject: InnerLogObject)
VerifyCallDelegate
protocol 1-to-1 callevtInnerLog(innerLogObject: InnerLogObject)
ConferenceDelegate
protocol Group callevtInnerLog(innerLogObject: InnerLogObject)
InnerLogObject
data class 1-to-1 callGroup callINNER_LOG_NAME
enum 1-to-1 callGroup call
サンプルコード
const planetKit = new Conference({
...,
delegate: {
evtDebugNotice: (debugNoticeParam) => {},
},
});
アプリサーバーデータの仕様変更
- アプリサーバーデータの最大値が256バイトから4096バイトに変更されました。
- アプリサーバーデータの最大値を超える場合、
START_FAIL_REASON.TOO_LONG_APP_SERVER_DATA
と共に通話に失敗します。
displayName
仕様の変更
displayName
は、null終了文字を含めて128バイトに制限されます。- 最大サイズを超える文字列の残りの部分は捨てられます。
カスタムメディアストリームの設定機能の追加
initMedia
オプションやvideo modifier APIを代替する、より直観的でユーザーフレンドリーなカスタムメディアストリームの設定APIを追加しました。
API
追加
Call
class 1-to-1 callfunction setCustomMediaStream(mediaStream: MediaStream)
function unsetCustomMediaStream()
function hasSetCustomMediaStreamWithAudio()
function hasSetCustomMediaStreamWithVideo()
Conference
class Group callfunction setCustomMediaStream(mediaStream: MediaStream)
function unsetCustomMediaStream()
function hasSetCustomMediaStreamWithAudio()
function hasSetCustomMediaStreamWithVideo()
MakeCallParams
data class 1-to-1 callvar customMediaStream?: MediaStream
VerifyCallParams
data class 1-to-1 callvar customMediaStream?: MediaStream
ConferenceParams
data class Group callvar customMediaStream?: MediaStream
EnableVideoOptions
data class 1-to-1 callGroup callvar customMediaStream?: MediaStream
削除
Call
class 1-to-1 callfunction setVideoModifier(canvasElement: HTMLCanvasElement)
function resetVideoModifier()
Conference
class Group callfunction setVideoModifier(canvasElement: HTMLCanvasElement)
function resetVideoModifier()
MakeCallParams
data class 1-to-1 callvar initMedia?: InitMedia
VerifyCallParams
data class 1-to-1 callvar initMedia?: InitMedia
ConferenceParams
data class Group callvar initMedia?: InitMedia
EnableVideoOptions
data class 1-to-1 callGroup callvar initMedia?: InitMedia
1対1通話にビュー変更APIを追加
- 1対1通話にUI開発の利便性を高めるためのビュー変更APIを追加しました。
API
追加
Call
class 1-to-1 callfunction getMyMediaStream()
function changeMyView(videoElement: HTMLVideoElement, cleanOldElement?: boolean)
function changePeerView(videoElement: HTMLVideoElement, cleanOldElement?: boolean)