错误:ERROR ITMS-90085
打包
用的HBuilderX(2.9.8) 在线云打包方式打包
上传包
用的VMware15.5虚拟机安装的 macOS10.14版本(后来升级到了10.15)
通过Transporter这个软件上传。
在10月的时候更新过一次版本,没有遇到问题,一切正常!
但这次12月9日更新版本就遇到问题了,报了这个错误
于是搜索了很多资料,还找到了https://ask.dcloud.net.cn/article/239(Appstore提交错误及解决方案),但还是没看明白,无奈只能接着在虚拟机里面巴拉巴拉!!
网上搜到的大部分都是用的Apple Developer(好像是Xcode的一部分),对于Transporter上传app说的不多,那就先看看这个软件(看是不是他的更新导致的)
首先打开App Store 找到Transporter,查看更新内容,
新功能那赫然写着“上传app元数据软件包ITMS”,
再结合之间DClound的回复“安装XCode”,
猜测App Store的上架改规则了,需要安装XCode,Transporter才能上传,
XCode安装包11G(想哭)太大了吧,虚拟机才40G,空间不足,又经过一顿折腾扩充到60个G,才顺利安装完XCode
再次打开Transporter上传,见证奇迹的时刻
一次上传成功!
总结:
应该是Transporter改规则了,依赖XCode的功能来上传元数据ITMS。
小白,点到为止!!
打包
用的HBuilderX(2.9.8) 在线云打包方式打包
上传包
用的VMware15.5虚拟机安装的 macOS10.14版本(后来升级到了10.15)
通过Transporter这个软件上传。
在10月的时候更新过一次版本,没有遇到问题,一切正常!
但这次12月9日更新版本就遇到问题了,报了这个错误
于是搜索了很多资料,还找到了https://ask.dcloud.net.cn/article/239(Appstore提交错误及解决方案),但还是没看明白,无奈只能接着在虚拟机里面巴拉巴拉!!
网上搜到的大部分都是用的Apple Developer(好像是Xcode的一部分),对于Transporter上传app说的不多,那就先看看这个软件(看是不是他的更新导致的)
首先打开App Store 找到Transporter,查看更新内容,
新功能那赫然写着“上传app元数据软件包ITMS”,
再结合之间DClound的回复“安装XCode”,
猜测App Store的上架改规则了,需要安装XCode,Transporter才能上传,
XCode安装包11G(想哭)太大了吧,虚拟机才40G,空间不足,又经过一顿折腾扩充到60个G,才顺利安装完XCode
再次打开Transporter上传,见证奇迹的时刻
一次上传成功!
总结:
应该是Transporter改规则了,依赖XCode的功能来上传元数据ITMS。
小白,点到为止!!
收起阅读 »个推十周年大放送!开发工具、爆款产品,全部免费!
“互动十年,每日鲸彩”。今年是每日互动(个推)成立十周年的日子。
从2010年到2020年,个推从一家创业公司成长为A股上市企业,从深耕消息推送技术到为各垂直行业提供专业的数据智能服务。
走过10年的我们,依然秉持 “每日生活 科技改变” 的初心,带着 “数据让产业更智能” 的使命,继续踏浪前行,创造别样鲸彩!
值个推十周年之际
我们特推出感恩特惠活动
以回馈广大开发者和行业客户
十年有礼,狂欢开启
爆款SDK,免费用1年
热门大数据产品,0门槛试用
个推消息推送VIP、用户画像、应用统计
三大APP开发工具
0元全部配齐
一站式满足多种开发需求
人群洞察、精准投放服务、实时人口数盘
三类热门大数据产品
帮助从业者快速进行数据分析
全方位输出大数据解决方案
个推十周年感恩特惠
限定31天,每天都是“双十一”
快来参与吧!
“互动十年,每日鲸彩”。今年是每日互动(个推)成立十周年的日子。
从2010年到2020年,个推从一家创业公司成长为A股上市企业,从深耕消息推送技术到为各垂直行业提供专业的数据智能服务。
走过10年的我们,依然秉持 “每日生活 科技改变” 的初心,带着 “数据让产业更智能” 的使命,继续踏浪前行,创造别样鲸彩!
值个推十周年之际
我们特推出感恩特惠活动
以回馈广大开发者和行业客户
十年有礼,狂欢开启
爆款SDK,免费用1年
热门大数据产品,0门槛试用
个推消息推送VIP、用户画像、应用统计
三大APP开发工具
0元全部配齐
一站式满足多种开发需求
人群洞察、精准投放服务、实时人口数盘
三类热门大数据产品
帮助从业者快速进行数据分析
全方位输出大数据解决方案
个推十周年感恩特惠
限定31天,每天都是“双十一”
快来参与吧!
收起阅读 »标梵讲解认识HTML
什么是 HTML?
HTML 是用来描述网页的一种语言。
HTML 指的是 超文本标记语言(Hyper Text Markup Language)
HTML 不是一种编程语言,而是一种标记语言 (markup language)
什么是超文本?
“超文本”是超级文本的中文缩写,英文名Hyper Text,缩写HT。
超文本是一种组织信息的方式。超文本是用超链接的方法,将各种不同空间的文字信息(文本中的文字、图表及其他信息媒体)组织在一起的网状文本。这些组织在一起的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。
什么是标记语言?
标记语言,是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记进行标识。
标记语言是一套标记标签 (markup tag)
HTML 使用标记标签来描述网页
什么是标记标签?
HTML 标记标签通常被称为 HTML标签 (HTML tag)
HTML 标签是由尖括号包围的关键词,比如 <html>
HTML 标签通常是成对出现的,比如<b> 和 </b>
标签对中的第一个标签是 开始标签,第二个标签是 结束标签
开始和结束标签也被称为开放标签和闭合标签
文章编辑:标梵互动(https://www.biaofun.com/)
什么是 HTML?
HTML 是用来描述网页的一种语言。
HTML 指的是 超文本标记语言(Hyper Text Markup Language)
HTML 不是一种编程语言,而是一种标记语言 (markup language)
什么是超文本?
“超文本”是超级文本的中文缩写,英文名Hyper Text,缩写HT。
超文本是一种组织信息的方式。超文本是用超链接的方法,将各种不同空间的文字信息(文本中的文字、图表及其他信息媒体)组织在一起的网状文本。这些组织在一起的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。
什么是标记语言?
标记语言,是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记进行标识。
标记语言是一套标记标签 (markup tag)
HTML 使用标记标签来描述网页
什么是标记标签?
HTML 标记标签通常被称为 HTML标签 (HTML tag)
HTML 标签是由尖括号包围的关键词,比如 <html>
HTML 标签通常是成对出现的,比如<b> 和 </b>
标签对中的第一个标签是 开始标签,第二个标签是 结束标签
开始和结束标签也被称为开放标签和闭合标签
文章编辑:标梵互动(https://www.biaofun.com/)
收起阅读 »网站开发技术的小白学习之路
WWW服务器上相互链接的的一系列网页组成一个网站,通常把网站称作WWW网店或Web站点。广义上说,网站有硬件与软件两大部分组成。硬件主要是指服务器(计算机),软件则只操作系统、Web服务器软件和应用程序(包括静态和动态网页文件以及数据库)等。从狭义上说,网站则是指基于Web服务器的应用程序。网站的体系结构如:
网站的工作流程
客户端通过浏览器来显示数据并实现与服务器的交互。在服务器端由Web服务器通过HTTP协议与客户端的浏览器交互,Web服务器和应用服务器(这里的应用服务器通常是指某种软件环境)也使用HTTP作为他们之间的通信协议。而应用服务器与数据库服务器之间采用的机制进行通信,如ODBC(open dtabase connectiviy,开放数据库链接)、JDBC(java database connectivity,java数据库连接)、SQL(structure query language,结构化查询语言)等。通常Web服务器接受应用服务器处理。应用服务器接受由Web服务器传来的处理请求,并根据需要查询或更新数据库,进行应用逻辑的处理,然后将处理结果传回给Web服务器。数据库服务器实现数据的存取功能,负责数据库的组织并向应用逻辑提供接口。
文章编辑:标梵互动(https://www.biaofun.com/)
WWW服务器上相互链接的的一系列网页组成一个网站,通常把网站称作WWW网店或Web站点。广义上说,网站有硬件与软件两大部分组成。硬件主要是指服务器(计算机),软件则只操作系统、Web服务器软件和应用程序(包括静态和动态网页文件以及数据库)等。从狭义上说,网站则是指基于Web服务器的应用程序。网站的体系结构如:
网站的工作流程
客户端通过浏览器来显示数据并实现与服务器的交互。在服务器端由Web服务器通过HTTP协议与客户端的浏览器交互,Web服务器和应用服务器(这里的应用服务器通常是指某种软件环境)也使用HTTP作为他们之间的通信协议。而应用服务器与数据库服务器之间采用的机制进行通信,如ODBC(open dtabase connectiviy,开放数据库链接)、JDBC(java database connectivity,java数据库连接)、SQL(structure query language,结构化查询语言)等。通常Web服务器接受应用服务器处理。应用服务器接受由Web服务器传来的处理请求,并根据需要查询或更新数据库,进行应用逻辑的处理,然后将处理结果传回给Web服务器。数据库服务器实现数据的存取功能,负责数据库的组织并向应用逻辑提供接口。
文章编辑:标梵互动(https://www.biaofun.com/)
收起阅读 »学习了一下原生插件开发 分享一个小工具,测试支付宝支付,支持沙箱,有源码
android代码有点大上传不了
# uni代码包 包括aar本地插件和java主要文件
迫于官方的支付只有 requestpayment error,这个项目为了方便测试直接返回sdk的结果,没有结构化数据
上图
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/f1f72fd07216da23661951ca3a297fdb.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/532e5113df548bf2244d6af7f7f5af01.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/3f1351184176b99a7557ff945606178b.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/6d7162fea08b0f3376c28c0bbbe21beb.jpg"/>
补个打包好的app:https://474b.com/file/13908934-475066729
android代码有点大上传不了
# uni代码包 包括aar本地插件和java主要文件
迫于官方的支付只有 requestpayment error,这个项目为了方便测试直接返回sdk的结果,没有结构化数据
上图
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/f1f72fd07216da23661951ca3a297fdb.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/532e5113df548bf2244d6af7f7f5af01.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/3f1351184176b99a7557ff945606178b.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/6d7162fea08b0f3376c28c0bbbe21beb.jpg"/>
补个打包好的app:https://474b.com/file/13908934-475066729
收起阅读 »uni api的真正同步写法实现await-input
有经验的开发者都会发现小程序的回掉写法嵌套太深,不利维护;
fail忘写,导致白屏异常。对比,部分同学实现了then的写法,却又觉得仍然不够sync。
工欲善其事,必先利其器。
那么推荐个结合了nodejs思想的小工具
有经验的开发者都会发现小程序的回掉写法嵌套太深,不利维护;
fail忘写,导致白屏异常。对比,部分同学实现了then的写法,却又觉得仍然不够sync。
工欲善其事,必先利其器。
那么推荐个结合了nodejs思想的小工具
canvasToTempFilePath。在ios上面截图白屏的问题
1.设置canvasToTempFilePath的宽高的数值为number,
- 如果报错,添加适当的延时
1.设置canvasToTempFilePath的宽高的数值为number,
- 如果报错,添加适当的延时
uniapp集成微信JSSDK(wx、jWeixin)变量冲突
H5集成企业微信jweixin-1.2.0.js后发现安卓端wx对象不能正常使用,iphone端jWeixin对象不可以正常使用,和预定义的变量冲突,CMD等加载方式都不行,只能分平台进行判断
let weixinApi;
if (/android/i.test(navigator.userAgent)){
weixinApi = jWeixin;
}else if (/ipad|iphone|mac/i.test(navigator.userAgent)){
weixinApi = wx;
}else{
reslove(false);
}
H5集成企业微信jweixin-1.2.0.js后发现安卓端wx对象不能正常使用,iphone端jWeixin对象不可以正常使用,和预定义的变量冲突,CMD等加载方式都不行,只能分平台进行判断
let weixinApi;
if (/android/i.test(navigator.userAgent)){
weixinApi = jWeixin;
}else if (/ipad|iphone|mac/i.test(navigator.userAgent)){
weixinApi = wx;
}else{
reslove(false);
}
plus.navigator.setStatusBarStyle('dark')
现阶段 plus.navigator.setStatusBarStyle('dark') 在onShow中加定时器使用
现阶段 plus.navigator.setStatusBarStyle('dark') 在onShow中加定时器使用
uniapp获取设备的ip和Mac----仅支持安卓
//获取Ip地址
getDeviceIp(){
var deviceIp = ‘’
if(plus.os.name=="Android"){
var Context = plus.android.importClass("android.content.Context");
var wifiManager =plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
var wifiInfo = plus.android.invoke(wifiManager, "getConnectionInfo");
var ipAddress = plus.android.invoke(wifiInfo, "getIpAddress");
deviceIp = '';
if (ipAddress != 0) {
deviceIp = ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "." + (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff));
}
}
console.log(deviceIp)
return deviceIp;
},
//获取mac地址
getDeviceMac(){
var deviceMac = ‘’
var net = plus.android.importClass("java.net.NetworkInterface")
var wl0 = net.getByName('wlan0')
var macByte = wl0.getHardwareAddress()
deviceMac = ''
for (var i = 0; i < macByte.length; i++) {
var tmp = "";
var num = macByte[i];
if (num < 0) {
tmp = (255 + num + 1).toString(16);
} else {
tmp = num.toString(16);
}
if (tmp.length == 1) {
tmp = "0" + tmp;
}
deviceMac += tmp;
}
console.log(deviceMac)
}, //获取Ip地址
getDeviceIp(){
var deviceIp = ‘’
if(plus.os.name=="Android"){
var Context = plus.android.importClass("android.content.Context");
var wifiManager =plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
var wifiInfo = plus.android.invoke(wifiManager, "getConnectionInfo");
var ipAddress = plus.android.invoke(wifiInfo, "getIpAddress");
deviceIp = '';
if (ipAddress != 0) {
deviceIp = ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "." + (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff));
}
}
console.log(deviceIp)
return deviceIp;
},
//获取mac地址
getDeviceMac(){
var deviceMac = ‘’
var net = plus.android.importClass("java.net.NetworkInterface")
var wl0 = net.getByName('wlan0')
var macByte = wl0.getHardwareAddress()
deviceMac = ''
for (var i = 0; i < macByte.length; i++) {
var tmp = "";
var num = macByte[i];
if (num < 0) {
tmp = (255 + num + 1).toString(16);
} else {
tmp = num.toString(16);
}
if (tmp.length == 1) {
tmp = "0" + tmp;
}
deviceMac += tmp;
}
console.log(deviceMac)
}, 收起阅读 »
Forsage佛萨奇系统软件APP开发核心价值介绍
Forsage佛萨奇系统软件APP开发核心价值是什么 ?(陈生I3O年.6O时643分Z97電)
通过Forsage Dapp 全球共享矩阵体验中
全球人类都将迅速普及、深度意识到智能合约、以太坊让世界变得更具色彩
该智能合约也被称为以太坊区块链矩阵项目, 应该为任何参与者提供“直接进行个人和商业交易的能力”。该网站本身 ( 最多 ) 是模糊的 , 试图以这种数字资产和区块链技术的已知术语诱使其他人进入加密货币领域。或多或少 , 看起来该公司似乎似乎比其使用这些术语所暗示的要更加了解。
新的重量级的百亿级、千亿级数字消费场景一定会出现。数字化生产会全面提高效率和质量。目前确实还是散点,产业互联网总体上还在探索阶段,但是经过多年积累,特别是5G 和相关技术的发展会推动产业互联网的广泛应用。
江小涓说,下一步要发展的数字技术应用场景,如城市管理、智慧驾驶、数字医疗、数字教育等都属于公共领域,政府放还是不放,需要谨慎考虑,因为准入和监管需要并重。
Forsage 是一种流行的 MLM 加密计划,它允许用户通过以下方式赚取以太 / 坊货币 2 种矩阵推荐结构。牧草是基于智能合约的去中心化生态系统因此。使技术设置完全可用并自动化,从而可以在安全平稳。
Forsage 程序采用二进制矩阵结构的 Gifting 方案。矩阵有 2 种类型 X3 矩阵和 X4 矩阵您可以选择与任何人一起骑自行车。要开始使用任何矩阵循环,您必须支付 0.05ETH 费用(加入费用),然后开始通过您的推荐链接推荐人。
Forsage 是全球共享以太 / 坊矩阵 , 全民智能合约营销以太 / 坊 , 仅仅只需 0.05 以太 / 坊起步 , 永续无限撬动以太 / 坊 , 你还在为你赚的空气 / 币数字而开心 ? 还是来赚以太 / 坊实在一些 , 全球用户激增突破 65 万人 , 全球用户实现矩阵获利高达 47 万简单一点持续多周排行以太 / 坊数据第一 ! 全球所有公链第 5, 不能用神盘来代替 !Forsage 因为无任何资 / 金沉淀。
Forsage 循环仪中使用的矩阵大小为 3 × 1 和 2 × 2 。 3 × 1 矩阵本质上很简单 , 只需要填充三个位置即可。 2 × 2 矩阵从第一层的两个位置开始 , 然后扩展到第二层的四个位置。职位通过直接和间接招募 Forsage 会员来填补。一旦矩阵中的所有位置都被填满 , 就激活循环佣 / 金。从矩阵出来的位置也将输入相同大小的新矩阵。
Forsage佛萨奇系统软件APP开发核心价值是什么 ?(陈生I3O年.6O时643分Z97電)
通过Forsage Dapp 全球共享矩阵体验中
全球人类都将迅速普及、深度意识到智能合约、以太坊让世界变得更具色彩
该智能合约也被称为以太坊区块链矩阵项目, 应该为任何参与者提供“直接进行个人和商业交易的能力”。该网站本身 ( 最多 ) 是模糊的 , 试图以这种数字资产和区块链技术的已知术语诱使其他人进入加密货币领域。或多或少 , 看起来该公司似乎似乎比其使用这些术语所暗示的要更加了解。
新的重量级的百亿级、千亿级数字消费场景一定会出现。数字化生产会全面提高效率和质量。目前确实还是散点,产业互联网总体上还在探索阶段,但是经过多年积累,特别是5G 和相关技术的发展会推动产业互联网的广泛应用。
江小涓说,下一步要发展的数字技术应用场景,如城市管理、智慧驾驶、数字医疗、数字教育等都属于公共领域,政府放还是不放,需要谨慎考虑,因为准入和监管需要并重。
Forsage 是一种流行的 MLM 加密计划,它允许用户通过以下方式赚取以太 / 坊货币 2 种矩阵推荐结构。牧草是基于智能合约的去中心化生态系统因此。使技术设置完全可用并自动化,从而可以在安全平稳。
Forsage 程序采用二进制矩阵结构的 Gifting 方案。矩阵有 2 种类型 X3 矩阵和 X4 矩阵您可以选择与任何人一起骑自行车。要开始使用任何矩阵循环,您必须支付 0.05ETH 费用(加入费用),然后开始通过您的推荐链接推荐人。
Forsage 是全球共享以太 / 坊矩阵 , 全民智能合约营销以太 / 坊 , 仅仅只需 0.05 以太 / 坊起步 , 永续无限撬动以太 / 坊 , 你还在为你赚的空气 / 币数字而开心 ? 还是来赚以太 / 坊实在一些 , 全球用户激增突破 65 万人 , 全球用户实现矩阵获利高达 47 万简单一点持续多周排行以太 / 坊数据第一 ! 全球所有公链第 5, 不能用神盘来代替 !Forsage 因为无任何资 / 金沉淀。
Forsage 循环仪中使用的矩阵大小为 3 × 1 和 2 × 2 。 3 × 1 矩阵本质上很简单 , 只需要填充三个位置即可。 2 × 2 矩阵从第一层的两个位置开始 , 然后扩展到第二层的四个位置。职位通过直接和间接招募 Forsage 会员来填补。一旦矩阵中的所有位置都被填满 , 就激活循环佣 / 金。从矩阵出来的位置也将输入相同大小的新矩阵。
收起阅读 »吐槽一下:uni-app原生video画质简直弱爆了,H5播放器甩原生video几条街!!
视频地址:http://vd2.bdstatic.com/mda-jmawcmkjagd8je0u/mda-jmawcmkjagd8je0u.mp4
这是uni-app原生video的画质
然后这是H5的video的画质
虽然这个视频本身画质不是很高,但是相对于H5的播放器画面更细腻柔和,原生的video比较粗糙,满满的小方格!
吐槽完了我分享一下我使用纯 nvue 项目加载“西瓜播放器”的方法:
西瓜视频播放器,官网:https://v2.h5player.bytedance.com/,
新建组件:H5-Video.nvue
<script>
export default {
data()
{
return{
//视频地址
src:'http://vd2.bdstatic.com/mda-jmawcmkjagd8je0u/mda-jmawcmkjagd8je0u.mp4'
}
},
onBackPress()
{
//退出页销毁播放器
uni.$xgplayer.close()
},
mounted()
{
this.xgplayer()
},
methods: {
xgplayer()
{
let styles = {
top: '0px',
bottom: '540px',
height: '256px',
width: '100%',
zindex:0,
position: 'static',
titleNView: {
autoBackButton: true,
backgroundColor: '#202028',
titleColor: '#ffffff'
} ,
"statusbar": {
"immersed": true ,//开启沉浸式状态栏
"background": '#202028'
},
"hardwareAccelerated" : true, //开启硬件加速
"allowsInlineMediaPlayback": true,//ios关闭原生控件
};
uni.$xgplayer = plus.webview.create('','xgplayer', styles, {}); //挂载到uni全局
uni.$xgplayer.setStyle({
'videoFullscreen':'landscape-primary',//视频全屏时支持横屏 IOS 端无效
});
uni.$xgplayer.loadURL("/hybrid/html/xgplayer.html?src="+this.src)
uni.$xgplayer.show();
}
},
}
</script>
新建本地HTML文件
hybrid/html/xgplayer.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,minimal-ui">
<meta name="referrer" content="no-referrer">
<title>H5高清播放</title>
<script src="js/uni.webview.1.5.2.js" charset="utf-8"></script>
<style type="text/css">
html, body {width:100%;height:100%;margin:auto;overflow: hidden;background-color: #000000;-webkit-user-select: none; user-select: none;}
</style>
</head>
<body>
<div id="mse"></div>
<script src="https://cdn.jsdelivr.net/npm/xgplayer@1.1.4/browser/index.js" charset="utf-8"></script>
<script>
let url = getQueryVariable('src');
let player = new Player({
"id": "mse",
"url": url,
"playsinline": true,
"width":"100%",
"height":"225px",
"autoplay": true,
"whitelist": [''],
"danmu": {
"comments": [
{
"duration": 15000,
"id": '1',
"start": 3000,
"txt": '长弹幕长弹幕长弹幕长弹幕长弹幕',
"style": { //弹幕自定义样式
"color": '#ff9500',
"fontSize": '17px',
// "border": 'solid 1px #ff9500',
"borderRadius": '50px',
"padding": '5px 11px',
"backgroundColor": 'rgba(255, 255, 255, 0.1)'
}
}
],
"area": {
"start": 0,
"end": 1
}
},
});
//获取url参数
function getQueryVariable(variable)
{
var reg = new RegExp('(^|&)' + variable + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
</script>
</body>
</html>
这样图二的效果就实现了!
缺点:就是和应用交互通讯困难,目前还没较好治疗药物!
有点:画质清晰、加载速度快,相同方法可以整合DP、videojs等网页H5播放器,DP支持 CDNBye p2p加速,速度更快!!
uni-app的video组件画质问题从去年就开始关注,直到现在已经彻底不报希望了,只能另找出路!!
你可以说插件市场有许多原生的播放器插件可以选择,如果说视频播放部分需要使用第三方插件来弥补,那么原生video组件存在的意义是什么??难道原生video已经不能再优化了吗???
现在是视频播放的潮流,将来更是,为什么没有得到重视??
视频地址:http://vd2.bdstatic.com/mda-jmawcmkjagd8je0u/mda-jmawcmkjagd8je0u.mp4
这是uni-app原生video的画质
然后这是H5的video的画质
虽然这个视频本身画质不是很高,但是相对于H5的播放器画面更细腻柔和,原生的video比较粗糙,满满的小方格!
吐槽完了我分享一下我使用纯 nvue 项目加载“西瓜播放器”的方法:
西瓜视频播放器,官网:https://v2.h5player.bytedance.com/,
新建组件:H5-Video.nvue
<script>
export default {
data()
{
return{
//视频地址
src:'http://vd2.bdstatic.com/mda-jmawcmkjagd8je0u/mda-jmawcmkjagd8je0u.mp4'
}
},
onBackPress()
{
//退出页销毁播放器
uni.$xgplayer.close()
},
mounted()
{
this.xgplayer()
},
methods: {
xgplayer()
{
let styles = {
top: '0px',
bottom: '540px',
height: '256px',
width: '100%',
zindex:0,
position: 'static',
titleNView: {
autoBackButton: true,
backgroundColor: '#202028',
titleColor: '#ffffff'
} ,
"statusbar": {
"immersed": true ,//开启沉浸式状态栏
"background": '#202028'
},
"hardwareAccelerated" : true, //开启硬件加速
"allowsInlineMediaPlayback": true,//ios关闭原生控件
};
uni.$xgplayer = plus.webview.create('','xgplayer', styles, {}); //挂载到uni全局
uni.$xgplayer.setStyle({
'videoFullscreen':'landscape-primary',//视频全屏时支持横屏 IOS 端无效
});
uni.$xgplayer.loadURL("/hybrid/html/xgplayer.html?src="+this.src)
uni.$xgplayer.show();
}
},
}
</script>
新建本地HTML文件
hybrid/html/xgplayer.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,minimal-ui">
<meta name="referrer" content="no-referrer">
<title>H5高清播放</title>
<script src="js/uni.webview.1.5.2.js" charset="utf-8"></script>
<style type="text/css">
html, body {width:100%;height:100%;margin:auto;overflow: hidden;background-color: #000000;-webkit-user-select: none; user-select: none;}
</style>
</head>
<body>
<div id="mse"></div>
<script src="https://cdn.jsdelivr.net/npm/xgplayer@1.1.4/browser/index.js" charset="utf-8"></script>
<script>
let url = getQueryVariable('src');
let player = new Player({
"id": "mse",
"url": url,
"playsinline": true,
"width":"100%",
"height":"225px",
"autoplay": true,
"whitelist": [''],
"danmu": {
"comments": [
{
"duration": 15000,
"id": '1',
"start": 3000,
"txt": '长弹幕长弹幕长弹幕长弹幕长弹幕',
"style": { //弹幕自定义样式
"color": '#ff9500',
"fontSize": '17px',
// "border": 'solid 1px #ff9500',
"borderRadius": '50px',
"padding": '5px 11px',
"backgroundColor": 'rgba(255, 255, 255, 0.1)'
}
}
],
"area": {
"start": 0,
"end": 1
}
},
});
//获取url参数
function getQueryVariable(variable)
{
var reg = new RegExp('(^|&)' + variable + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
</script>
</body>
</html>
这样图二的效果就实现了!
缺点:就是和应用交互通讯困难,目前还没较好治疗药物!
有点:画质清晰、加载速度快,相同方法可以整合DP、videojs等网页H5播放器,DP支持 CDNBye p2p加速,速度更快!!
uni-app的video组件画质问题从去年就开始关注,直到现在已经彻底不报希望了,只能另找出路!!
你可以说插件市场有许多原生的播放器插件可以选择,如果说视频播放部分需要使用第三方插件来弥补,那么原生video组件存在的意义是什么??难道原生video已经不能再优化了吗???
现在是视频播放的潮流,将来更是,为什么没有得到重视??
收起阅读 »










