Unity AssetのAVProでファイル読み込み直後に動画を再生しようとすると読み込みが間に合わずエラーになる時があります。それを回避するために今回Event取得し再生準備が整ったら再生させるようにします。
1. イベント関数を用意
以下サイトを参考にScriptにイベントが取得できるように関数を宣言します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public void OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode error) { switch (et) { case MediaPlayerEvent.EventType.FinishedPlaying: Debug.Log("MediaPlayerEvent:FinishedPlaying"); break; case MediaPlayerEvent.EventType.ReadyToPlay: Debug.Log("MediaPlayerEvent:ReadyToPlay"); mp.Control.Play(); break; case MediaPlayerEvent.EventType.MetaDataReady: Debug.Log("MediaPlayerEvent:MetaDataReady"); break; case MediaPlayerEvent.EventType.FirstFrameReady: Debug.Log("MediaPlayerEvent:FirstFrameReady"); break; case MediaPlayerEvent.EventType.Started: Debug.Log("MediaPlayerEvent:Started"); break; } } |
再生準備が整ったときに MediaPlayerEvent.EventType.ReadyToPlay が呼び出されます。そこに mp.Control.Play(); で再生させます。
2. InspectorでEventを登録
1の関数をInspectorのEventsに登録します。
コメントを残す