Unity VideoPlayer和WebGLMovieTexture无法连续播放两个视频

时间:2017-01-21 23:28:25

标签: unity3d

我正在尝试在浏览器中使用Unity WebGL播放视频,但是遇到了很多问题。

我尝试了两个不同的视频播放器,但没有一个完全正常工作。

WebGLMovieTexture播放器就像这样工作

public WebGLStreamingVideoPlugin _videoPlugin = new WebGLStreamingVideoPlugin("http://www.example.net/video.mp4");
_videoPlugin.Play();

基本上,当你想播放一个视频时,你会创建一个新的实例并给它提供如上所述的URL,它会很棒!!

问题是当你想停止那个视频并播放不同的视频时,这似乎是不可能的,因为没有办法处理第一个视频,因为API中只有一个Stop(),它会停止播放但是它继续在后台传输来自互联网的视频数据。

无法删除实例,因为无法调用Destroy(),因为WebGLMovieTexture不是从monodevelop派生的,而C#似乎没有提供删除对象的方法(多么愚蠢)。即使将其设置为null也不会这样做,它会继续在后台传输视频。

因此,如果您创建一个新实例以播放不同的视频,您最终会得到两个视频流,如果您再次播放第三个视频流,那么最终会得到三个,依此类推,所以很快就会可以看出最终会有多糟糕。

我的问题是如何丢弃或销毁第一个WebGLMovieTexture播放器,或者告诉它停止播放第一个视频并开始播放另一个视频?

我尝试的第二个播放器是Unity版本5.6.0b4中的WebGL VideoPlayer,如果我在检查器中对URL进行硬编码,我只能播放视频,如果我将URL放在代码中它没有不要在浏览器中播放。

    vPlayer = gameObject.GetComponent<UnityEngine.Video.VideoPlayer>();
    if (vPlayer.isPlaying) {
        Debug.Log("STOPPING PLAY");
        vPlayer.Stop();
    }
    vPlayer.url = url;
    vPlayer.isLooping = true;
    vPlayer.frame = 0;
    vPlayer.targetCameraAlpha = 1F;
    vPlayer.Prepare();
    vPlayer.Play();

为了让它播放第二个视频,我怀疑我会遇到与另一个视频相同的问题。

有人有任何想法可以帮助我吗?

0 个答案:

没有答案
相关问题