AR.JS扫描标识播放视频

  • 前言
    • mark标识
    • 图片标识
    • 通用事件

前言

现在我了解的AR.js扫描有两种 一种是mark标识 一种是图片标识
mark标识是一种方形的图片,有黑色的边框 最小为图片的十分之一
也不知道算不算优点的一方面是在微信打开时播放视频是用的微信的播放器 默认全屏播放不会卡
图片标识就是使用一张图片作为标识,好处是比例随意,长方形,正方形,随意的图片都可以。算是缺点的地方是这个在微信打开时他会将播放器隐藏,然后将其渲染到模型上,就会很卡。

mark标识

生成链接

这个上传图片 然后选择黑框比例即可 最小比例为9:1

这个需要修改的部分在AR.js的源码里的patternRatio 其默认为0.5,将其修改为0.9即可识别0.9尺寸的Mark标识

然后 如果想要识别对应的标识展示不同的视频的话 需要在arController.addEventListener这个函数内的if( event.data.marker.idPatt === artoolkitMarkerId ) 里添加判断

// 定义视频路径
let videourl = "";
// 获取到标识名称
var list = _this.parameters.patternUrl.split("/")
list = list[list.length - 1].split(".")[0]
//获取video
var video = document.getElementById("video")
if(list == "pattern-trex"){if (video.src == "" || video.src != (videourl+"qiu.mp4")) {video.pause();video.src = videourl+"qiu.mp4"video.currentSrc = videourl+"qiu.mp4"video.play()} else {video.play()}
}else if(...){......}

注意:源码里直接在if( event.data.marker.idPatt === artoolkitMarkerId ) 判断后面执行了一句话,没有{},需要自己添加。

图片标识

生成链接
图片标识按照官方的说法是最好使用他们提供的node文件在本地生成,可是我下载后使用时疯狂报错,所以现在只能使用网上链接进行生成。(说是如果想要生成的图片标识宽或高大于1000像素的话需要较长的生成时间,这种方式的标识生成时间无论大小都比Mark标识的长

这里需要修改的地方主要在aframe-ar-nft.js文件里的ARjs.MarkerControls.prototype.updateWithModelViewMatrix函数里 直接在里面写就可以。
主要要写的代码和上面的基本没区别,主要的区别在于标识名的获取

markerObject3D.visible = true
// 获取到当前标识名称
let list = this.parameters.descriptorsUrl.split("/");
list = list[list.length - 1];

markerObject3D.visible = true这句话就是展示模型用的,这个事件大概是0.02秒执行一次 疯狂循环。
在其他函数内的**if (ev && ev.data && ev.data.type === ‘found’)**这个判断里 如果成立就会执行上面这个函数调用展示模型。else就断掉了,如果有需求是扫描到就播放,挪开就停止的话就需要else里添加视频停止事件。

通用事件

在微信内播放时会有一个问题,微信内是无法自动播放视频的,需要进行点击。这时就需要添加一张提示播放的按钮图,不然就会展示一个纯黑的模型。
这个先不细说了,脑壳痛,有人要就再说吧。

AR.JS扫描标识播放视频相关推荐

  1. 示例:使用 Flv.js 和 Reflv 播放视频

    1.背景 传统的播放视频是采用 flash 播放器方式,然而各大浏览器厂商都不再支持flash , 我们不得不寻找其他解决方案. 2.说明 2.1 Flv.js flv.js 是一个HTML5 Fla ...

  2. 使用 Flv.js 和 Reflv 播放视频

    1.背景 传统的播放视频是采用 flash 播放器方式,然而各大浏览器厂商都不再支持flash , 我们不得不寻找其他解决方案. 2.说明 2.1 Flv.js flv.js 是一个HTML5 Fla ...

  3. 高通|AR扫描图片播放视频

    片: apk包:http://pan.baidu.com/s/1eQxylcI

  4. Android中WebView使用6,js调java实现播放视频

    效果图 项目结构: 核心代码: JsCallJavaVideoActivity中 package com.zhh.android;import android.app.Activity; import ...

  5. ar.js 追踪图片mark播放视频,并且根据是否识别控制视频播放操作

    首先完成了视频纹理的加载,可以持续的播放视频 其次完善了视频播放感受,清除跳跃.跳帧.抖动.每次识别重新播放等现象,不错的感受,可以达到商业效果. 最后,通过通读ar.js代码,终于找到了通过识别进行 ...

  6. html iframe视频自动播放的属性,iframe通用js播放器myplayer.js加自动播放参数

    我的播放器调用方式,通用js播放器myplayer.js打开自动播放&后面的多余参数藐视不受影响. iframe可用于通用视频地址,.MP4去掉所有尾巴 &参数 最终自动播放mypla ...

  7. canvas+howler.js 解决同页面视频、音频同时播放问题

    canvas+howler.js 解决同页面视频.音频同时播放问题 参考文章: (1)canvas+howler.js 解决同页面视频.音频同时播放问题 (2)https://www.cnblogs. ...

  8. flv.js播放视频时遇到的问题

    文章目录 前言 一.报错 二.原因 三.方案 前言 rtsp流通过ffmpeg+nginx-http-flv转成rtmp以及http-flv流,并通过flv.js在页面播放,带有音频的流出现播放不了问 ...

  9. JS自动播放视频脚本

    JS自动播放视频脚本: var n = 0,j=0; setInterval(function () {var video = document.querySelector("#J_pris ...

最新文章

  1. TDSQL“相似查询工具MSQL+”入选VLDB论文
  2. 分布式事务框架 seata-golang 通信模型详解
  3. ansible图形化界面开源_MySQL常见的图形化工具
  4. 在实时操作系统里随便写代码都能硬实时吗?
  5. Linux查看内存占用--free
  6. python的requests快速上手、高级用法和身份认证
  7. Java 实现 AES 加解密
  8. 计算机组成与设计概念总结
  9. 烟花php,基于HTML5 canvas的逼真烟花特效插件jquery.fireworks.js
  10. 从《牛津高阶英汉词典》中提取单词(1)
  11. 超级计算机的生产流程,PCB生产工艺流程,你知道吗?
  12. Dictionary:MAC字典最简解决方案
  13. 手机芯片命名规则详解
  14. 【KSQL引擎 介绍】
  15. I2C协议研读(十)
  16. 使用SCRAPY框架获取网易云排行榜歌单
  17. MEM/MBA数学基础(01)预备知识
  18. 邮件服务器安全SPF、DKIM、DMARC
  19. 计算机的基本结构以真值函数,离散数学N元真值函数问题
  20. iOS-地图真实坐标表示形式之间转换(double型,int型 互转)

热门文章

  1. python中的utils模块_python常用方法utils
  2. 4个公用计算机网络设置路由器,一个带猫的路由和一个四口路由器将四台计算机连接怎样设置...
  3. c语言中void函数,c语言中void的用法
  4. 部分视图传viewbag_NET开发-MVC中如何使用ViewBag和操作方法参数向视图传递数据?...
  5. pymssql._pymssql.OperationalError: Statement not executed or executed statement has no resultset报错解决
  6. 中国特色小吃英文词汇大全
  7. html 页面地图不显示图片,嵌入谷歌地图不显示在HTML页面
  8. 【数据挖掘】关联规则之灰色关联分析法
  9. 环境变量基本操作及path环境变量
  10. 工具分享:macOS上可以单独设置鼠标滚轮方向的小工具,Mos