unity 使用ump插件播放视频 ,打包发布后黑屏或者在别人电脑上运行黑屏,解决方案

1 篇文章 0 订阅
1 篇文章 0 订阅

unity 使用ump插件播放视频 ,打包发布后黑屏或者在别人电脑上运行黑屏,解决方案。

ump插件下载

  • 最近在项目里面 需要接入海康监控 并在unity中显示,我选择使用ump 插件播放视频,
  • 刚开始使用 ump1.7.1 插件 ,发现在unity中运行正常 打包发布后 运行黑屏(具体原因可能和2.0.3一样), 又换升级ump插件到2.0.3 ,解决发布后在自己电脑黑屏问题 。于是又踩新坑 就是把这个包发送给同事 在他电脑上运行黑屏 , 问题原因有下:
    • ump插件会自动获取 VLC库,如果当前电脑没有安装VLC就会使用ump插件中的VLC库 ,但此时获取的方式为绝对路径, 所以换电脑播放就找不到绝对路径下的VLC库了 会黑屏
    • ump播放视频 是基于 VLC库的播放 因为当前电脑上没有这库 所以运行黑屏
  • 解决方法有两种:
    • 方法1.
      电脑安装VLC 地址 :https://ftp.stu.edu.tw/others/VideoLAN/vlc/3.0.6/win64/vlc-3.0.6-win64.exe
    • 方法2.
      • 修改脚本 NativeInterop中ReadLocalRegKey方法
      • 然后 打包后把插件中Win / x86_64文件拷贝到xxx_Data/Plugins下面去,
        解决 电脑播放黑屏问题
 public static string ReadLocalRegKey(string keyPath, string valueName)
        {
            var platform = UMPSettings.RuntimePlatform;
            var value = string.Empty;
            if (platform == UMPSettings.Platforms.Win)
            {
                var localMachine = new UIntPtr(0x80000002u);
                var readKeyRights = 131097;
                var hKey = UIntPtr.Zero;
                //如果当前电脑上 安装了vlc 就用安装的VLC 路径下的dll 
                if (WindowsInterop.RegOpenKeyEx(localMachine, keyPath, 0, readKeyRights, out hKey) == 0)
                {
                    uint type;
                    uint size = 1024;
                    var keyBuffer = new StringBuilder((int)size);

                    if (WindowsInterop.RegQueryValueEx(hKey, valueName, 0, out type, keyBuffer, ref size) == 0)
                        value = keyBuffer.ToString();
                    else
                        Debug.LogWarning(string.Format("[ReadLocalRegKey] Can't read local reg key value: '{0}'", valueName));

                    WindowsInterop.RegCloseKey(hKey);
                }
                else //当前当前电脑 没有安装 VLC 就去data文件下找
                {
                    value = Application.dataPath + "/Plugins/x86_64/";
                }
                //else
                //    Debug.LogWarning(string.Format("[ReadLocalRegKey] Can't open local reg key: '{0}'", keyPath));
            }
            return value;
        }
  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值