##環境
- Unity 2019.2.1
##はじめに
今回、初めてVideoPlayerで動画を再生することにしたのですが、
数々の困難が襲って来ました!
その困難たちの中のひとつで、
『動画プレイ時にブラウザ再生時のみ、動画の最初がちらつく(一瞬白くなる等)』
の現象が発生し、それを解決した方法を記載します
##VideoPlayerの使い方
そもそも、VideoPlayerをどうやって実装するかはコチラ等が参考になります。
WebGLの場合は、VideoClipでは再生できませんので、
- Source : URL
- URL : 動画保存先URL
を指定して実装してください。
##ちらつく現象解消方法
- 動画プリロード
- ロードを待つ
- 動画再生
- フレームを待つ (はじめのフレームを表示しない様にする)
- 画面に表示
で解決しました。
以下が参考ソースです。
private VideoPlayer player;
private RawImage rawImage;
void OnEnable()
{
player.prepareCompleted += PrepareCompleted;
}
void OnDisable()
{
player.prepareCompleted -= PrepareCompleted;
}
// 2. ロードを待つ
private void PrepareCompleted (VideoPlayer vp)
{
if (vp != player) { return; }
StartCoroutine (ShowMovie (vp));
}
private IEnumerator ShowMovie (VideoPlayer vp)
{
// 3. 動画再生
vp.Play();
// 4. フレームを待つ
while (vp.frame < 1)
{
yield return null;
}
// 5. 画面に表示
rawImage.texture = vp.texture;
rawImage.enabled = true;
}
private void SetVideoUrl (string url)
{
player.source = VideoSource.Url;
player.url = url;
}
public void Play()
{
// 1. 動画プリロード
player.Prepare();
}