転送フィルター¶
Sora Unity SDK の転送フィルター機能について説明します。
この機能を利用することで、音声や映像のフィルターをすることができます。
Sora 2024.2.0 以降の Sora での利用について¶
Sora 2024.2.0 からルールだけでなくフィルターそのものを複数設定できるようになりました。
これまでの ForwardingFilter
は非推奨になり、新たに ForwardingFilters
が追加されました。
今後は ForwardingFilters
を使用して転送フィルターを設定してください。
以下は ForwardingFilters
を前提とした説明を記載しています。
転送フィルターについて¶
転送フィルターは ForwardingFilters
クラスを使用して設定することができます。
このクラスは ForwardingFilter
のリストになっており、複数の転送フィルターを設定が可能になっています。
転送フィルターの仕様の詳細については Sora ドキュメント を参照してください。
また、複数の転送フィルターの仕様については Sora ドキュメント を参照してください。
Sora.cs で ForwardingFilters
と ForwardingFilter
クラスは以下のように定義されています。
// 転送フィルターの設定を保持するクラス
public class ForwardingFilter
{
public string? Action;
public string? Name;
public int? Priority;
public class Rule
{
public string Field;
public string Operator;
public List<string> Values = new List<string>();
}
public List<List<Rule>> Rules = new List<List<Rule>>();
public string? Version;
public string? Metadata;
}
public class Config
{
// ForwardingFilter 設定
public ForwardingFilter ForwardingFilter;
// ForwardingFilters 設定
public List<ForwardingFilter> ForwardingFilters;
}
利用方法¶
転送フィルターの利用方法の例を以下に示します。
var config = new Sora.Config();
// ForwardingFilters プロパティにフィルタリストを設定
config.ForwardingFilters = new List<Sora.ForwardingFilter>
{
// フィルタ1: 特定の client-id (carol) を持つデータを許可
new Sora.ForwardingFilter
{
// 許可アクション
Action = Sora.ActionAllow,
// フィルタの名前
Name = "client-id-carol-allow",
// 優先度
Priority = 0,
// フィルタのルール
Rules = new List<List<Sora.ForwardingFilter.Rule>>
{
new List<Sora.ForwardingFilter.Rule>
{
new Sora.ForwardingFilter.Rule
{
// 許可対象の client-id リスト
Field = Sora.FieldClientId,
Operator = Sora.OperatorIsIn,
Values = new List<string> { "carol" }
}
}
},
// フィルタのバージョン
Version = "a",
// メタデータ(JSON形式)
Metadata = "{\"spam\":\"egg\"}"
},
// フィルタ2: audio と video データをフィルタ
new Sora.ForwardingFilter
{
// Action / Name / Priority は未指定の場合はデフォルト値が設定される
// フィルタのルール
Rules = new List<List<Sora.ForwardingFilter.Rule>>
{
new List<Sora.ForwardingFilter.Rule>
{
new Sora.ForwardingFilter.Rule
{
Field = Sora.FieldKind,
Operator = Sora.OperatorIsIn,
Values = new List<string> { "audio", "video" }
}
},
},
}
};