9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Unity WebGLでのVideoPlayerがうまく再生できないとき

Posted at

#VideoPlayerが動かない!!
たぶんこのページを開かれたということは、WebGLでvideoPlayerがうまく動かなくてお悩みのことだろうと思われます。
結論だけ書くと

###ネット上に動画ファイルを置いて、urlから開いて
###VideoPlayerのロードを待つスクリプトを書きましょう!!

#なぜこのような事態が起きるか
まず、Unity 5.6からある、VideoPlayerはMP4ファイルを読み込んでくれる神機能ですが
マルチプラットフォーム対応の際どうしても対応状況に差が出てしまっているようです...
###Videoclipを埋め込んだ時に再生できない問題
どうやら仕様らしいです、あきらめましょう
(ここに書いてある、ドキュメント見忘れたって書いてあるけどそんな記述あったかなぁ...)
###Urlから開いても再生されない問題
本来仕様ではローディングが終わってから再生されるはずなんですが、どうやらバグっているのかその前に開こうとしてエラーをはいてる感じでした。
なので、追加でスクリプトを書きましょう

VideoLoader.cs
[SerializeField] string url;
#if UNITY_WEBGL
    void Start()
    {

        var videoPlayer = GetComponent<VideoPlayer>();
        videoPlayer.source = VideoSource.Url;
        videoPlayer.url = url;
        videoPlayer.prepareCompleted += PrepareCompleted;
        videoPlayer.Prepare();
    }
    void PrepareCompleted(VideoPlayer vp)
    {
        vp.prepareCompleted -= PrepareCompleted;
        vp.Play();
    }
#endif

こんな感じで書いて、VideoPlayerにアタッチしてくださいこれでおそらく動きます。

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?