プロダクションスタジオ レイアウトは、リソースの参照方法と配置方法を定義します。ビジネス シナリオに基づいて適切なレイアウトを作成できます。
リソースを参照および配置するために、次のパラメーターを設定できます。
BlendList:レイアウトで参照されるビデオ レイヤーのロケーション ID。レイアウト内のビデオ レイヤーは、このパラメーターで指定された順序で下から上に重ねられます。
MixList:レイアウトで参照されるオーディオ レイヤーのロケーション ID。レイアウト内のオーディオ レイヤーは、このパラメーターで指定された順序でミキシングされます。
VideoLayer:レイアウトで参照されるビデオ レイヤーの構成。座標の参照元、ビデオ レイヤーの正規化された幅と高さ、ビデオ レイヤーの位置などが含まれます。このパラメーターで指定されたビデオ レイヤーが、
BlendListパラメーターで指定されたものと同じ順序であることを確認してください。AudioLayer:レイアウトで参照されるオーディオ レイヤーの構成。ボリュームとオーディオ入力チャンネルなどが含まれます。このパラメーターで指定されたオーディオ レイヤーが、
MixListパラメーターで指定されたものと同じ順序であることを確認してください。
サンプルの単一イメージ レイアウトを作成するためのパラメーター
パラメーターの有効値の詳細については、「AddCasterLayout」をご参照ください。
パラメーター | 例 | 説明 |
Action | AddCasterLayout | 実行する操作。 |
CasterId | LIVEPRODUCER_POST-cn-v0h1557**** | プロダクションスタジオの ID。 |
BlendList.1 | RV01 | ビデオ ソースのロケーション ID。 |
MixList.1 | RV01 | オーディオ ソースのロケーション ID。 |
VideoLayer.1.HeightNormalized | 1.0 | ビデオ レイヤーの正規化された高さ。ビデオ レイヤーの幅は、このパラメーターに基づいて比例的にスケーリングされます。 |
VideoLayer.1.PositionNormalized.1 | 1.0 | ビデオ レイヤーの正規化された x 軸の値。 |
VideoLayer.1.PositionNormalized.2 | 1.0 | ビデオ レイヤーの正規化された y 軸の値。 |
VideoLayer.1.PositionRefer | topLeft | レイアウト内のビデオ レイヤーの座標の参照元。この例では、原点は再生ウィンドウの左上隅です。 |
AudioLayer.1.ValidChannel | leftChannel | オーディオ入力チャンネル。この例では、左チャンネルが使用されます。 |
AudioLayer.1.VolumeRate | 1.0 | オーディオが再生される元のボリュームの倍数。 1.0 の値は元のボリュームを示します。 |
A.n は、A リストの n 番目の数値を示します。 A.n.B は、A リストの n 番目の構造体要素の B パラメーターを示します。
サンプル コード
public AddCasterLayoutResponse addCasterLayoutSample() {
/* BlendList を設定します。 */
ArrayList<String> blendList = new ArrayList<String>();
blendList.add("RV01");
/* VideoLayers を設定します。 */
ArrayList<VideoLayer> videoLayers = new ArrayList<VideoLayer>();
VideoLayer videoLayer = new VideoLayer();
ArrayList<Float> positionNormalized = new ArrayList<Float>();
positionNormalized.add(0f);
positionNormalized.add(0f);
videoLayer.setHeightNormalized(1f); // ビデオ レイヤーの正規化された高さを設定します。
videoLayer.setPositionNormalizeds(positionNormalized); // ビデオ レイヤーの正規化された座標を設定します。
videoLayer.setPositionRefer("topLeft"); // ビデオ レイヤーの座標の参照元を設定します。
videoLayers.add(videoLayer);
/* MixList を設定します。 */
ArrayList<String> mixList = new ArrayList<String>();
mixList.add("RV01");
/* AudioLayers を設定します。 */
ArrayList<AudioLayer> audioLayers = new ArrayList<AudioLayer>();
AudioLayer audioLayer = new AudioLayer();
audioLayer.setVolumeRate(1f); // オーディオ ストリームが再生される元のボリュームの倍数を設定します。
audioLayer.setValidChannel("leftChannel"); // オーディオ入力チャンネルを設定します。
audioLayers.add(audioLayer);
AddCasterLayoutRequest addCasterLayoutRequest = new AddCasterLayoutRequest();
addCasterLayoutRequest.setCasterId("LIVEPRODUCER_POST-cn-v0h1557****"); // プロダクションスタジオの ID を設定します。
addCasterLayoutRequest.setBlendLists(blendList); // BlendList を設定します。
addCasterLayoutRequest.setMixLists(mixList); // MixList を設定します。
addCasterLayoutRequest.setVideoLayers(videoLayers); // VideoLayers を設定します。
addCasterLayoutRequest.setAudioLayers(audioLayers); // AudioLayers を設定します。
AddCasterLayoutResponse addCasterLayoutResponse = null;
try {
addCasterLayoutResponse = LiveClient.getClient().getAcsResponse(addCasterLayoutRequest);
} catch (Exception e) {
e.printStackTrace();
}
return addCasterLayoutResponse;
}