本帖子采用的方案是采用web原生的方式去播放视频;这里以unity2018.4.16为例子,如果版本不同需要自行查阅文档修改

1.需要了解一下unity与web的交互

参考官方文档:WebGL:与浏览器脚本交互 - Unity 手册

我们要创建一个.jslib文件放到Plugins文件夹中添加如下代码,videoPlay()函数就是我们要调用的js代码里面的Pointer_stringify()在新版好像有改动这个自己去查阅一下替换一下就好了,里面的函数是我们需要调用的;

mergeInto(LibraryManager.library, {
  PlayVideo: function(url, width, height)
  {
	videoPlay(Pointer_stringify(url), width, height);
  },
});

然后场景中要添加一个游戏对象,再创建一个同名脚本,就像这样,在这里完成我们与web 的交互,代码如下:

public class UnityWeb : MonoBehaviour
{
    public static UnityWeb Instance;
    [DllImport("__Internal")]
    private static extern void PlayVideo(string url, int width, int height);

    void Awake()
    {
        Instance = this;
    }
    //调用WebGL播放器进行视频播放
    public void PlayVideoByWebGL(string url, int width = 800, int height = 600)
    {

        PlayVideo(url, width, height);

    }
}

2.需要熟悉一下unity打包成webgl后的文件

这里需要一个web的原生播放窗口(这里我会提供一个供大家测试用,禁止用到项目!禁止用到项目!禁止用到项目!)要是公司项目要用,公司里肯定也有web开发吧,找他们帮帮写一个。
链接:https://pan.quark.cn/s/9d30dbb762c7
提取码:WxNU

文件就是这样的,其实就是一个播放视频的web窗口

然后我们把视频播放的那个窗口文件丢到StreamingAssets下,特殊文件夹打完包也可以看到的。

我这个是unity2018.4.16,不同版本打包出的webgl文件会有变化需要自行查阅官方文档修改,打包完成就是下面这样:

现在打开html编辑一下

在画红线这里加上下面这行代码,这很好理解吧,因为要调用这里面的函数所以要把代码添加进去。

如果和我的版本不同的话这个index.html的代码是不一样的,不过原理是相同的,自行查阅修改一下或者找web开发的同学问下。

    <script src="StreamingAssets/videoWebGL/initVideoPlay.js"></script>

这样我们就可以调用到initVideoPlay.js中的videoPlay()函数了。然后我们要播放视频是要有一个窗口去承载这个视频的看下面两种图:

这里要对应的上,这里说到这个还是因为不同版本的话index.html会出现不一样的名称,出现不同需要自行修改一下。

这样就完成了,调用UnityWeb.Instance.PlayVideoByWebGL(url,width,height)就可以播放了;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐