当前位置: 首页 > wzjs >正文

无锡网站制作专业服务公司大鹏手机网站建设

无锡网站制作专业服务公司,大鹏手机网站建设,wordpress加入音乐,优化关键词技巧一、问题背景 考虑到Vulkan高性能的优势,项目组决定打包设置为vulkan优先,opengl es次之的方案;但由于部分低端设备或者部分模拟器对Vulkan的兼容性良莠不齐,导致诸如使用VideoPlayer组件无法正常播放视频等问题频发,而…

一、问题背景

       考虑到Vulkan高性能的优势,项目组决定打包设置为vulkan优先,opengl es次之的方案;但由于部分低端设备或者部分模拟器对Vulkan的兼容性良莠不齐,导致诸如使用VideoPlayer组件无法正常播放视频等问题频发,而这些问题在opengl es模式下不存在。鉴于Unity官方未在2022系列修复该问题,以及本项目优先使用Vulkan模式的需求,本方案决定在UnityPlayerActivity.java源文件或者自定义的UnityPlayerActivity入手,检测设备是否支持特定特性,进而显示指定以哪种模式启动unity运行时。

二、问题原因

       根据问题设备日志可以发现,视频为正常播放的根本原因可能原因在于设备厂商在定制vulkan驱动时,未充分兼容其所需特性,甚至不支持指定特性,并且在回退操作中可能处理不恰当,进而导致视频播放异常。

        unity中在移动平台下对mp4视频文件默认处理成H264编码格式(对应MIME为"video/avc"),在运行时优先使用硬件解码,在不支持硬件解码时回退到软件解码,而部分设备在vulkan模式下这个回退操作有问题,因此在启动unity运行时前先检测视频解码器是否支持硬件解码,支持则走vulkan模式,不支持则走opengl es模式;对于部分特殊较老设备即使支持硬件解码也会有问题,直接过滤解码器关键字,强制设为opengl es模式。

三、解决办法

       在UnityPlayerActivity.java源文件中新加硬件加速检测方法,并在unity运行时启动前检测,根据检测结果设置unity运行时启动参数,vulkan为"-force-vulkan",opengl es为"-force-opengl";

  //判断指定MimeType视频在当前平台下是否支持硬件加速,不支持的话,在vulkan模式下大概率无法播放视频,则切换为opengl es模式   public boolean isHardwareDecodeSupported(String mimeType) {Log.e("User", "---------------------------------mimeType Check-------------------------------");MediaCodecList codecList = new MediaCodecList(MediaCodecList.ALL_CODECS);ArrayList<String> ignoreList=new ArrayList<>();ignoreList.add("mtk");//mtk的soc比较低端,很容易出问题,直接忽略boolean _s = false;for (MediaCodecInfo codecInfo : codecList.getCodecInfos()) {if (codecInfo.isEncoder()) continue; // 仅检查解码器for (String type : codecInfo.getSupportedTypes()) {if (type.equalsIgnoreCase(mimeType)) {String name = codecInfo.getName().toLowerCase();Log.e("User", "decoder name:" + name);// 检查是否为硬件加速if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {boolean support = false;try {support = codecInfo.isHardwareAccelerated();if (support) {for (String ignore:ignoreList){if (name.contains(ignore)) {Log.e("User", "ignore:" + name);return false;}}}} catch (Exception e) {Log.e("User", "isHardwareAccelerated not find");}if (support)Log.e("User", "HardwareAccelerate support:true");elseLog.e("User", "HardwareAccelerate support:false");if (!_s && support) {_s = support;}}}}}return _s;}
// Setup activity layout@Override protected void onCreate(Bundle savedInstanceState){requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);String cmdLine = updateUnityCommandLineArguments(getIntent().getStringExtra("unity"));boolean vulkansupport=isHardwareDecodeSupported("video/avc");// H.264 的 MIME 类型为 video/avcif(vulkansupport){cmdLine+=" -force-vulkan";Log.e("User","start in Vulkan mode!"+cmdLine);}else{cmdLine+=" -force-gles";Log.e("User","start in OpenGL ES mode!"+cmdLine);}getIntent().putExtra("unity", cmdLine);mUnityPlayer = new UnityPlayer(this, this);setContentView(mUnityPlayer);mUnityPlayer.requestFocus();}

      引入依赖的java类

import android.media.MediaCodecInfo;
import android.media.MediaCodecList;
import java.util.ArrayList;

四、相关参考

1、https://blog.csdn.net/gaozhaoyuyu/article/details/136299359

2、https://forum.unity.com/threads/videoplayer-dont-play-well-on-android-with-exynos-2100-s21-ultra.1460107/

3、https://forum.unity.com/threads/video-lags-on-android-device-in-unity-version-2022-3-14f1.1529137/#post-9541912

http://www.dtcms.com/wzjs/816089.html

相关文章:

  • 网站建设完整教程视频教程网站上咱们做鱼饵
  • 手机兼职赚钱正规平台网站seo快速排名
  • 用wordpress建仿站凡客诚品还有人买吗
  • 口碑好的购物网站建设公司开发设计推荐
  • 网站建设与维护视频教程哪个网站虚拟主机好
  • 做网站用哪个服务器做百度推广需要什么条件
  • 北京做网站的开发公司装修论坛网站有哪些
  • 太原住房和城乡建设部网站制作文字图片
  • 长沙做网站设计的公司论述简述网站制作的步骤
  • 门户网站建设要求网站内的搜索怎么做的
  • 天津河北做网站的公司排名教人做甜品的网站
  • 建设银行论坛网站网站建设价格如何
  • 河北省建设执业注册中心网站在线app
  • 网站空间免费 优帮云线上商城怎么开
  • 简洁的网站案例侨联网站建设方案
  • 中联建设集团股份有限公司网站物流网站建设规划书
  • 中国上海门户网站沧州市网站建设
  • 热门课程自己做网站凡科网是做什么的
  • 国外网站源码怎么做 社区网站
  • 网站建设 php 企业网站宁乡网站建设点燃网络
  • wordpress弹幕主题做360手机网站优化
  • 自学建百度首页网站wordpress移动显示
  • 网站在阿里云备案流程企业形象宣传策划方案
  • 手机网站头部代码网页设计实训报告总结与收获
  • 网站安全优化wordpress侧边栏缩略图
  • 用asp做网站需要准备什么免费3d建模软件
  • 房地产网站 模板中国对外建设有限公司网站
  • 网站建设需要掌握什么技术又拍云wordpress
  • 大型集团网站大型网站建设服务公司
  • 各大门户网站dede和wordpress