前提
UnityのVideoPlayerを使って、動画を任意のフレームから開始させようとしています。
これらは、スクリプト上でVideoClipのロードから開始までを操作しています。
ですが、VideoPlayer.frame = 任意の数値を入れても任意のフレームから開始されません。( 0 < 任意の数値 < 最大フレーム数)
原因は、VideoPlayer.frameCountは開始数秒まで実際の動画フレーム数ではなく0が入っているからだと考えています。
実現したいこと
前提から、VideoPlayer.frameCountの設定が行われたか判定を行う関数を作りたいと思います。
frameCount( > 0)が設定され次第、フラグをOnにしたいと思います。
そのため、frameCountが正しく設定されたという判定方法を教えて頂きたいです。
発生している問題
コルーチンを使って、frameCountが設定されるまで回し続けるという処理を書きましたが、いつまで待ってもframeCountの値が変わりません。
下記のwhile文の中でずっと回り続けている状態です。
該当のソースコード
C#
1 2 private VideoPlayer vp; 3 private bool isSetFrame; 4 5 public void CheckAvailable() 6 { 7 StartCoroutine("_CheckAvailable"); 8 } 9 10 private IEnumerator _CheckAvailable() 11 { 12 isSetFrame = false; 13 while (true) 14 { 15 if (vp.frameCount > 0) 16 break; 17 18 yield return null; 19 } 20 isSetFrame = true; 21 }
vpにVideoClip が入っていること・再生できることは確認済み
isSetFrame は frameCount が設定されているかのフラグです。
試したこと
yield return new WaitForSeconds(1.0f)にする等してみましたが変わりませんでした。
補足情報(FW/ツールのバージョンなど)
Unity 2017.4.0f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/26 05:38