インターフェースドキュメンテーション

初期化パラメータ

SDKを初期化するConfigは次のパラメータをサポートしています。
パラメータ
説明
タイプ
渡す必要があるかどうか
module
モジュール設定
type ModuleConfig = {
beautify: boolean // デフォルトはtrueです
segmentation: boolean // デフォルトはfalseです
}
いいえ、デフォルトは {beautify: true, segmentation: false}です
auth
認証パラメータ
type AuthConfig = {
licenseKey: string // コンソール Web License管理取得
appId: string // コンソール アカウント情報 > 基本情報APPID確認
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:美顔パラメータオブジェクト
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
}
-
美顔パラメータを設定するには、美顔モジュールを起動する必要があります
setEffect(effects, callback)
effects:エフェクト ID | effectオブジェクト | エフェクト ID / effect配列
effect:{
id: string,
intensity: number, // エフェクト強度、デフォルトは1、範囲は0-1です
filterIntensity: number // エフェクト内のフィルター強度を単独で制御します。デフォルトはintensityで、範囲は0-1です (0.1.18およびそれ以降のバージョンでサポートしています)
}
callback:成功したコールバックを設定します
-
エフェクトを設定するには、美顔モジュールを起動する必要があります
setAvatar(params)
{
mode: 'AR' | 'VR',
effectId?: string, // effectIdをパススルーして内蔵モデルを使用します
url?: string, // urlをパススルーしてカスタムモデルを使用します
backgroundUrl?: string, // 背景画像リンク。VRモードの場合のみ有効です
}
-
Animoji表情またはバーチャルキャラクターの設定
setBackground(options)
{
type: 'image|blur|transparent',
src: string // imageタイプのみ必要
}
-
背景を設定するには人物画像分割モジュールを起動する必要があります
setFilter(id, intensity, callback)
id:フィルターID
intensity:フィルター強度、範囲は0-1です
callback:成功したコールバックの設定
-
フィルターの設定
getEffectList(params)
{
PageNumber: number,
PageSize: number,
Name: '',
Label: Array,
Type: 'Custom|Preset'
}
エフェクトリスト
エフェクトリストのプル
getAvatarList(type)
type = 'AR' | 'VR'
バーチャルキャラクターリスト
バーチャルキャラクターリストのプル
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)
}
})