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

リリースノート

WebPlanetKit 5.3のリリースノートです。

WebPlanetKit 5.3

リリース日:2024-12-23

MediaStreamManagerを追加

  • メディアデバイスを使用してMediaStreamを簡単に作成し、管理できるMediaStreamManagerクラスを追加しました。
  • 作成したMediaStreamManagerインスタンスはMakeCallParamsVerifyCallParamsConferenceParamsEnableVideoOptionsに簡単に適用でき、これによってWebPlanetKitとスムーズに相互作用できます。

API

追加
  • MediaStreamManager class 1-to-1 callGroup call
  • MakeCallParams data class 1-to-1 call
    • var mediaStreamManager?: MediaStreamManager
  • VerifyCallParams data class 1-to-1 call
    • var mediaStreamManager?: MediaStreamManager
  • ConferenceParams data class Group call
    • var mediaStreamManager?: MediaStreamManager
  • EnableVideoOptions data class 1-to-1 callGroup call
    • var 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 call

    • function 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 call

    • function 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 call

    • function 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-backgroundAPIリファレンスを参照してください。

通話試行関数のエラー処理方法の改善

  • Planet Cloudに対する通話を試みる最中にエラーが発生した場合、なぜエラーが発生したのか詳細な理由を提供するためにStartFailReasonを追加しました。
  • 通話試行関数(makeCallverifyCalljoinConference)で構造化されたエラーオブジェクトを通じて、エラー発生の詳細な理由を提供します。

API

追加
  • START_FAIL_REASON enum 1-to-1 callGroup call
  • MakeCallError data class 1-to-1 call
  • VerifyCallError data class 1-to-1 call
  • JoinConferenceError data class Group call
削除
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call
    • PLANETKIT_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 call

    • var ringbackToneUrl?: string
    • var endToneUrl?: string
    • var playEndToneRegardlessOfCallState?: boolean
  • VerifyCallParams data class 1-to-1 call

    • var ringToneUrl?: string
    • var endToneUrl?: string
    • var playEndToneRegardlessOfCallState?: boolean
  • ConferenceParams data class Group call

    • var endToneUrl?: string
    • var playEndToneRegardlessOfCallState?: boolean

デバッグ通知機能の追加

  • ユーザーに内部警告状況やデバッグ情報を提供するためのデバッグ通知機能を追加しました。
  • 以前、evtInnerLogを通じて転送していたすべてのイベントをKitDelegateevtDebugNoticeイベントに切り替えました。

API

追加
  • DEBUG_NOTICE enum 1-to-1 callGroup call
  • KitDelegate protocol 1-to-1 callGroup call
  • InitConfig data class 1-to-1 callGroup call
    • var delegate?: KitDelegate
削除
  • MakeCallDelegate protocol 1-to-1 call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • VerifyCallDelegate protocol 1-to-1 call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • ConferenceDelegate protocol Group call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • InnerLogObject data class 1-to-1 callGroup call
  • INNER_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 call
    • function setCustomMediaStream(mediaStream: MediaStream)
    • function unsetCustomMediaStream()
    • function hasSetCustomMediaStreamWithAudio()
    • function hasSetCustomMediaStreamWithVideo()
  • Conference class Group call
    • function setCustomMediaStream(mediaStream: MediaStream)
    • function unsetCustomMediaStream()
    • function hasSetCustomMediaStreamWithAudio()
    • function hasSetCustomMediaStreamWithVideo()
  • MakeCallParams data class 1-to-1 call
    • var customMediaStream?: MediaStream
  • VerifyCallParams data class 1-to-1 call
    • var customMediaStream?: MediaStream
  • ConferenceParams data class Group call
    • var customMediaStream?: MediaStream
  • EnableVideoOptions data class 1-to-1 callGroup call
    • var customMediaStream?: MediaStream
削除
  • Call class 1-to-1 call
    • function setVideoModifier(canvasElement: HTMLCanvasElement)
    • function resetVideoModifier()
  • Conference class Group call
    • function setVideoModifier(canvasElement: HTMLCanvasElement)
    • function resetVideoModifier()
  • MakeCallParams data class 1-to-1 call
    • var initMedia?: InitMedia
  • VerifyCallParams data class 1-to-1 call
    • var initMedia?: InitMedia
  • ConferenceParams data class Group call
    • var initMedia?: InitMedia
  • EnableVideoOptions data class 1-to-1 callGroup call
    • var initMedia?: InitMedia

1対1通話にビュー変更APIを追加

  • 1対1通話にUI開発の利便性を高めるためのビュー変更APIを追加しました。

API

追加
  • Call class 1-to-1 call
    • function getMyMediaStream()
    • function changeMyView(videoElement: HTMLVideoElement, cleanOldElement?: boolean)
    • function changePeerView(videoElement: HTMLVideoElement, cleanOldElement?: boolean)