動画を順に、時折分岐して再生をさせたいです。
お世話になっております。
ゲームを制作しようと考えていて、そのために動画を順に、時折分岐して再生をさせたいと考えています。
仕様
**・**PC内に保存された再生したい動画を指定(動画1,動画2,動画3,…,動画N)→Enterを押す→同じウィンドウ内で動画をフルスクリーンで順番に再生させたいです。
**・**連続で再生させたいため、途中で停止・つづきから再生などどの機能は必要ありません。
**・**動画を再生して、何も押されなければまた初めから再生、Enterが押されるとその時点ですぐに次の動画を再生というのも入れたいと考えています。
**・**動画を再生した後に3つの動画の中からランダムに1本を再生するということもしたいと考えています。
勉強始めた手で雑なフローチャートかもしれませんが、こういった具合のものを制作したいと考えています。
動画に関して
拡張子: mp4
動画時間: 1つあたり30秒前後
フレーム: 30フレーム
質問
上記の行いたいことを解決できるような方法をご存知であれば、よろしくお願いします。
(このようなライブラリを使用すれば、できるのではないか など)
調べてみたところ、複数の動画を同時に再生させる方法は見つけることができたのですが、
複数を順番に再生する方法は見当たりませんでした。
環境
processing3, Mac
よろしくお願い致します。
試したこと
import processing.video.*; //ビデオライブラリのインポート int whichMovie; // 状態管理の変数 Movie mov1; // Movieクラスのインスタンス Movie mov2; // Movieクラスのインスタンス Movie mov3; // Movieクラスのインスタンス void setup() { fullScreen(); mov1 = new Movie(this, "01.mp4"); mov2 = new Movie(this, "02.mp4"); mov3 = new Movie(this, "03.mp4"); whichMovie = 1; // 再生されるmovを状態として変数で管理 mov1.loop(); } void draw() { background(0, 0, 0); // 背景白 switch(whichMovie) { case 1: if (mov1.available()) { mov1.read(); } for (float j = 0; j <= height; j += mov1.height) { for (float i = 0; i <= width; i += mov1.width) { image(mov1, i, j, mov1.width, mov1.height); } } break; case 2: if (mov2.available()) { mov2.read(); } for (float j = 0; j <= height; j += mov2.height) { for (float i = 0; i <= width; i += mov2.width) { image(mov2, i, j, mov2.width, mov2.height); } } break; case 3: if (mov3.available()) { mov3.read(); } for (float j = 0; j <= height; j += mov3.height) { for (float i = 0; i <= width; i += mov3.width) { image(mov3, i, j, mov3.width, mov3.height); } } break; } } void keyPressed() { switch(whichMovie) { case '1': mov1.noLoop(); break; case '2': mov2.noLoop(); break; case '3': mov3.noLoop(); break; } case '1': mov1.jump(0); mov1.loop(); whichMovie = 1; break; case '2': mov2.jump(0); mov2.loop(); whichMovie = 2; break; case '3': mov3.jump(0); mov3.loop(); whichMovie = 3; break; } }
これだと、手動で順番に再生することはできたのですが、切り替え前の動画がバックグラウンドで再生されていて、音声が二重、三重に流れてしまいました。
なんとか実現させたいです。よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー