This repository has been archived by the owner on Dec 26, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
[prior to 3.0] 06 動画を再生する
Yuya Matsuo edited this page Sep 12, 2016
·
1 revision
MediaPlayerで再生する動画をシーンオブジェクトに表示させることができます。
MediaPlayer mp;
SceneObject obj;
Material material = Material.from(mp);
obj.material(material);
シーン(res/xml/scene.xml)を以下のように作成します。
<scene>
<object
id="player"
width="3.2"
height="1.8"
z="-5.0" />
</scene>
SceneObjectにMediaPlayerを設定するコードです。
public class App extends MeganekkoApp {
private MediaPlayer mediaPlayer;
public App(Meganekko meganekko) {
super(meganekko);
mediaPlayer = MediaPlayer.create(getContext(), Uri.fromFile(getVideoFile()));
setSceneFromXML(R.xml.scene);
SceneObject player = getScene().findObjectById("player");
player.material(Material.from(mediaPlayer));
mediaPlayer.start();
}
}
配置するSceneObjectの形状を球とすることで、Equirectangular動画を再生することができます。このための特別なシーンオブジェクトがあり、<globe>
要素で作成できます。
<scene>
<globe id="player" />
</scene>
あとは上記のAppのコードと同じように再生できます。
再生する動画がステレオの場合は、Material.setStereoMode
を使用します。
SceneObject player;
player.material().setStereoMode(Material.StereoMode.TOP_BOTTOM); // 上に左目用映像、下に右目用映像がある場合
player.material().setStereoMode(Material.StereoMode.BOTTOM_TOP); // 下に左目用映像、上に右目用映像がある場合
player.material().setStereoMode(Material.StereoMode.LEFT_RIGHT); // 左に左目用映像、右に右目用映像がある場合
player.material().setStereoMode(Material.StereoMode.RIGHT_LEFT); // 右に左目用映像、左に右目用映像がある場合
動画はステレオだが一時的にステレオ表示をやめたい場合は、LEFT_ONLY
,TOP_ONLY
などを指定します。
なお、動画ではなく静止画のテクスチャーでも上記の方法でステレオ表示にできます。