インターフェースドキュメンテーション
初期化パラメータ
SDKを初期化するConfigは次のパラメータをサポートしています。
パラメータ | 説明 | タイプ | 渡す必要があるかどうか |
module | モジュール設定 | type ModuleConfig = { beautify: boolean // デフォルトはtrueです segmentation: boolean // デフォルトはfalseです } | いいえ、デフォルトは {beautify: true, segmentation: false} です |
auth | 認証パラメータ | type AuthConfig = { authFunc:() => Promise<{ signature:string, timestamp:string }> // Licenseの設定と使用をご参照ください } | はい |
input | 入力ソース | MediaStream|HTMLImageElement|String | いいえ |
camera | 内蔵カメラ | type CameraConfig = { width: number, // 撮影画面の幅 height: number, // 撮影画面の高さ mirror: boolean, // 左右ミラーオン/オフ frameRate: number // 画面収集フレームレート } | いいえ |
beautify | 美顔パラメータ | type BeautifyOptions = { whiten?: number, // 美白 0-1 dermabrasion?: number // 美肌0-1 lift?: number // 小顔0-1 shave?: number // 顎を細くする0-1 eye?: number // デカ目0-1 chin?: number // 下あご0-1 } | いいえ |
background | 背景パラメータ | type BackgroundOptions = { type: 'image' | 'blur' | 'transparent', src?: string } | いいえ |
loading | 内蔵loading iconの設定 | type loadingConfig = { enable: boolean, size?: number lineWidth?: number strokeColor?: number } | いいえ |
コールバックイベント
let effectList = [];let filterList = [];// sdkのコールバック使用法sdk.on('created', () => {// ページ表示のためにcreatedコールバックでエフェクトおよびフィルターリストをプルしますsdk.getEffectList({Type: 'Preset',Label: 'メイクアップ',}).then(res => {effectList = res});sdk.getCommonFilter().then(res => {filterList = res})})sdk.on('cameraReady', async () => {// camerareadyコールバック内でより早く出力画面を取得することができます。この時初期化で渡された美顔パラメータはまだ有効ではありません// できるだけ早く画面を表示する必要がありますが、画面が表示されたらすぐに美顔を要求されるわけではないシーンに適用されます// その後美顔が有効になった後streamを更新する必要はなく、SDK内部で処理されますconst arStream = await ar.getOutput();// ローカル再生// localVideo.srcObject = arStream})sdk.on('ready', () => {// readyコールバック内で出力画面を取得します。この時初期化で渡された美顔パラメータは有効です// 上記のcameraReadyでoutputを取得することとは異なり、画面を表示するとすぐに美顔がありますが、できるだけ早く画面を表示する必要はありません// 自身の業務ニーズに応じて処理方式を選択することができますconst arStream = await ar.getOutput();// ローカル再生// localVideo.srcObject = arStream// readyコールバックでsetBeautify/setEffect/setFilterなどのレンダリング方法を呼び出すことができますsdk.setBeautify({whiten: 0.3});sdk.setEffect({id: effectList[0].EffectId,intensity: 0.7});sdk.setEffect({id: effectList[0].EffectId,intensity: 0.7,filterIntensity: 0.5 // 0.1.18およびそれ以降のバージョンはeffect内のフィルターの強度を単独で設定することをサポートしています。渡されない場合、デフォルトではエフェクトのintensityに一致します});sdk.setFilter(filterList[0].EffectId, 0.5)})
イベント | 説明 | コールバックパラメータ |
created | SDK 認証を完了してインスタンスの作成に成功したときにトリガーされます | - |
cameraReady | SDKの画面生成時にトリガーされます。この場合は、outputに画面がありますが美顔は有効にすることができません | - |
ready | SDK 内部で初期化の完了を検出した時にトリガーされます。この場合は、output画面に美顔があり、新たなエフェクトを設定することもできます | - |
error | SDKにエラーが発生した時にトリガーされます | errorオブジェクト |
オブジェクトメソッド
インターフェース | パラメータ | 戻る | 説明 |
async getOutput(fps) | fps:出力するメディアストリームのフレームレートを設定します。デフォルトでは設定する必要はありません | MediaStream|String | Web端末でのみ提供 |
setBeautify(options) | options:美顔パラメータオブジェクト
| - | 美顔パラメータを設定するには、美顔モジュールを起動する必要があります |
setEffect(effects, callback) | effects:エフェクト ID | effectオブジェクト | エフェクト ID / effect配列
callback:成功したコールバックを設定します | - | エフェクトを設定するには、美顔モジュールを起動する必要があります |
setAvatar(params) |
| - | Animoji表情またはバーチャルキャラクターの設定 |
setBackground(options) |
| - | 背景を設定するには人物画像分割モジュールを起動する必要があります |
setFilter(id, intensity, callback) | id:フィルターID intensity:フィルター強度、範囲は0-1です callback:成功したコールバックの設定 | - | フィルターの設定 |
getEffectList(params) |
| エフェクトリスト | エフェクトリストのプル |
getAvatarList(type) |
| バーチャルキャラクターリスト | バーチャルキャラクターリストのプル |
getEffect(effectId) | effectId:エフェクト ID | 単一のエフェクト情報 | エフェクトを指定する情報をプルします |
getCommonFilter() | - | 内蔵フィルターリスト | 内蔵フィルターリストを取得します |
async updateInputStream(src:MediaStream) (0.1.19バージョン以降にサポート | src:新しい入力ストリームMediaStream | - | 入力ストリームを更新します |
disable() | - | - | 顔検出を無効化して、未処理のオリジナル画面に戻ると、CPU使用率を低下させることができます |
enable() | - | - | 顔検出を復元して、美顔などのエフェクトが有効な画面に戻ります |
destroy() | - | - | 現在のsdkインスタンスおよび関連するテクスチャリソースを破棄します |
エラー処理
error コールバックで返されるオブジェクトにはエラーコードとエラー情報が含まれ、エラー処理をしやすくします。
sdk.on('error', (error) => {// error コールバックでエラーを処理しますconst {code, message} = error...})
エラーコード | 意味 | 備考 |
10000001 | 現在のブラウザ環境は互換性がありません | Chrome、Firefox、Safariの使用をユーザーにお勧めします |
10000002 | 現在のレンダリングコンテキストは失われます | - |
10000003 | レンダリングには時間がかかります | ビデオの解像度を下げるか機能をブロックすることを検討してください |
10000005 | 入力ソースの解析エラー | - |
10001101 | エフェクトエラーの設定 | - |
10001102 | フィルターエラーの設定 | - |
10001103 | エフェクト強度のパラメータが不正確です | - |
10001201 | ユーザーカメラの起動に失敗しました | - |
10001202 | カメラ中断 | - |
20002001 | 認証パラメータがありません | - |
20001001 | 認証失敗 | Licenseが作成されているかどうか、署名が正確かどうかを確認してください |
20001002 | インターフェースリクエストに失敗しました | |
40000001 | 現在のSDKバージョンが低すぎるため、一部のエフェクトが正しく表示されません。SDKをバージョンアップしてください | - |
現在のレンダリングコンテキストを処理すると失われます
一部のPCは長時間バックエンドをカットされるシナリオでcontextlost処理エラーがトリガーされる可能性があります。
ArSdk.prototype.resetCore(input: MediaStream)
を呼び出してレンダリングコンテキストを復元することができます。sdk.on('error', async (error) => {if (error.code === 10000002) {const newInput = await navigator.mediaDevices.getUserMedia({...})await sdk.resetCore(newInput)}})