uniapp 基础阿里云点播 使用

这是加密的 且适用于app端

对于UNI APP端的开发而言,由于上并没有document
不能进行相关的DOM操作,同时有关DOM渲染的第三方库(echart、openlayer等)也无法有效的使用,
因此官方推出了renderjs方案,来解决上述问题。

一、官方 renderjs 文档
二、其他博主的记录 可以详细看看怎么使用 uniapp中使用renderjs的一些细节

因为业务需要记录获取用户学习时长,
所以在这基础上加了 存储 当前播放记录以及全屏 其他的一些 的功能,
在另一篇有详细记录的代码⬇

其他功能

以下是基础的播放器 功能

<template><view class="container"><divref="videoContent"@tap="renderScript.handleClick"id="url-player-test":videoData="videoData":change:videoData="renderScript.receiveMsg"></div></view>
</template><script>
import $http from "@/config/requestConfig.js"; //封装的请求方法
export default {data() {return {options: {},//上个页面获取的视频参数(视频id)playAuth: "",//播放凭证videoId: "",//阿里云视频idvideoData: {},//阿里云视频其他参数}},//第一次加载onLoad(options) {this.options = JSON.parse(options.data);//根据自己上个页面的传参来接受this.videoId = this.options.video;//阿里云视频idmethods: {// 获取数据getLive() {var data = {...this.options,};$http.request({url: `xxxx`,//接口地址method: "Post", data,//后端需要的参数主要为阿里云视频idheader: {"Content-Type": "application/json",},}).then((res) => {//playAuth 是播放凭证 通过后端自己根据api去获取,返回时不知道为什么结束会带有= 有时候甚至是2个 所以要截取等号 不然不能播放var playAuth = res.video.playAuth.replace(/=/g, "");this.videoData = {...res.video,//视频其他信息videoId: res.video.video,//阿里云视频idplayAuth: playAuth,//阿里云播放凭证};this.playAuth = playAuth;this.$forceUpdate();});},},created() {this.getLive();//获取播放凭证},
};
</script><script module="renderScript" lang="renderjs">
export default {mounted() {// 在适合的生命周期,通过script和link标签引入播放器sdk、cssthis.loadWebPlayerSDK()},data() {return {player: null,}},methods: {getLive() {//配置播放器var player = new Aliplayer({id: "url-player-test","vid": this.videoData.videoId, // 必选参数,可以通过点播控制台(路径:媒资库>音/视频)查询。示例:1e067a2831b641db90d570b6480f****。"playauth": this.videoData.playAuth, // 必选参数,参数值可通过调用GetVideoPlayAuth接口获取。"encryptType": 1, // 必选参数,当播放私有加密流时需要设置本参数值为1。其它情况无需设置。"playConfig": {"EncryptType": 'AliyunVoDEncryption'},width: '100%', //容器的大小height: '100%', //容器的大小}, function(player) {	});this.player = player;player.one('canplay', function() {// console.log('canplay', this.player.tag);player.tag.play();});},//监听获取播放凭证的方法checkValue() {console.log(this.videoId, this.authId, "1111888888")if (!this.videoData.playAuth) {setTimeout(() => {this.checkValue();}, 1000);} else {this.getLive();}},loadWebPlayerSDK() {return new Promise((resolve, reject) => {const s_tag = document.createElement('script'); // 引入播放器jss_tag.type = 'text/javascript';s_tag.src = 'https://g.alicdn.com/apsara-media-box/imp-web-player/2.20.3/aliplayer-min.js';s_tag.charset = 'utf-8';s_tag.onload = () => {this.checkValue();resolve();}document.body.appendChild(s_tag);const l_tag = document.createElement('link'); // 引入播放器cssl_tag.rel = 'stylesheet';l_tag.href ='https://g.alicdn.com/apsara-media-box/imp-web-player/2.20.3/skins/default/aliplayer-min.css';document.body.appendChild(l_tag);});},
loadComponent() {return new Promise((resolve, reject) => {const s_tag = document.createElement('script');s_tag.type = 'text/javascript';// 需要先下载组件 js 文件,放到项目 /static/ 目录下// 下载地址:https://github.com/aliyunvideo/AliyunPlayer_Web/blob/master/customComponents/dist/aliplayer-components/aliplayercomponents-1.0.9.min.jss_tag.src = './static/aliplayercomponents-1.0.9.min.js';s_tag.charset = 'utf-8';s_tag.onload = () => {resolve();}document.body.appendChild(s_tag);});}}
}
</script>
<style>
.container {width: 100vw;height: 100vh;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA毕业设计136—基于Java+Springboot+Vue的房屋租赁管理系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的房屋租赁管理系统(源代码数据库)136 一、系统介绍 本项目前后端分离&#xff0c;分为管理员、用户、工作人员、房东四种角色 1、用户/房东&#xff1a; …

【网络安全】网络安全协议和防火墙

目录 1、网络层的安全协议&#xff1a;IPsec 协议族 &#xff08;1&#xff09;IP 安全数据报格式 &#xff08;2&#xff09;互联网密钥交换 IKE (Internet Key Exchange) 协议 2、运输层的安全协议&#xff1a;TLS 协议 3、系统安全&#xff1a;防火墙与入侵检测 1、网络…

数据结构篇其二---单链表(C语言+超万字解析)

目录 前言&#xff1a; 一、顺序表的缺点和链表的引入。 二、链表概述 实现一个简单的链表 空链表的概念 三、链表的功能实现 链表的打印 链表节点的创建 链表的头插&#xff08;自上而下看完分析&#xff0c;相信你会有所收获&#xff09; 头插的前置分析 传值调用和…

OSPF的LSA与特殊区域

Area区域概念 *一个区域维护一张LSDB&#xff0c;路由器详细的链路信息只在这个区域内传播 不是每一台路由器都需要了解所有外部目的地的详细信息 *OSPF网络的层次化设计 通过区域ID标识 骨干&#xff08; Backbone &#xff09;区域&#xff0c;必须是area 0(骨干区域…

Dos慢速攻击

这里写自定义目录标题 Dos慢速攻击 Dos慢速攻击 测试结果为“Exit status&#xff1a; No open connections left"&#xff0c;代表无此漏洞。 如果测试结束后connected数量较多&#xff0c;closed数量很少或0&#xff0c;说明之前建立的慢速攻击测试连接没有关闭&#…

书生·浦语 大模型(学习笔记-7)LMDeploy 量化部署 LLM-VLM 实践

目录 一、模型的部署 二、模型部署面临的问题 三、如何解决&#xff08;两种方法&#xff09; 四、LMDeploy相关知识 创建conda环境(漫长的等待) 五、使用LMDeploy与模型对话 六、设置最大KV Cache缓存大小 七、W4A16量化 八、客户端连接API服务器 一、模型的部署 二、…

2024 泛娱乐企业出海音视频选型攻略

前言 在全球化扩张的大潮中&#xff0c;精准选择音视频技术平台对出海企业至关重要。本文将聚焦于评估即构音视频解决方案在关键的五大出海区域的性能表现&#xff0c;并深度解析各地区的市场特征及对应战略。旨在为志在全球市场扩张的企业提供详细的分析和策略指导&#xff0…

NLP step by step -- 了解Transformer

Transformer模型 Transformer相关历史 首先我们先看一下有关Transformer模型的发展历史&#xff0c;下面的图是基于Transformer架构的一些关键模型节点&#xff1a; 图片来源于Hugging Face 图片来源于Hugging Face Transformer 架构 于 2017 年 6 月推出。原本研究的重点是…

Java面试八股之Java中为什么没有全局变量

Java中为什么没有全局变量 Java中没有传统意义上的全局变量&#xff0c;这是因为Java语言设计遵循面向对象的原则&#xff0c;强调封装性和模块化&#xff0c;以及避免全局状态带来的副作用。 封装性&#xff1a; 全局变量违反了面向对象编程中的封装原则&#xff0c;即隐藏对…

Spring Boot集成RabbitMQ快速入门Demo

1.什么是RabbitMQ&#xff1f; RabbitMQ是一款使用Erlang语言开发的&#xff0c;基于AMQP协议的消息中间件&#xff0c;作为一款优秀的消息系统&#xff0c;RabbitMQ有高并发、可扩展等优势&#xff0c;并适用于大型系统中各个模块之间的通信。 RabbitMQ的特点为&#xff1a; 持…

【白盒测试】单元测试的理论基础及用例设计技术(6种)详解

目录 &#x1f31e;前言 &#x1f3de;️1. 单元测试的理论基础 &#x1f30a;1.1 单元测试是什么 &#x1f30a;1.2 单元测试的好处 &#x1f30a;1.3 单元测试的要求 &#x1f30a;1.4 测试框架-Junit4的介绍 &#x1f30a;1.5 单元测试为什么要mock &#x1f3de;️…

《前端面试题》- React - 如何区分函数组件和类组件

问题 如何区分函数组件和类组件&#xff1f; 答案 可以使用instanceof 或者Component.prototype.isReactComponent。 示例 函数组件 export default function FunctionComonent() {if(FunctionComonent.prototype.isReactComponent){console.log(FunctionComonent是类组件…

prompt提示词:AI英语词典优化版Pro,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 不可思议&#xff01;我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘 &#xff0c;真的是高手都是惺惺相惜的&#xff0c;哈哈&#xff0c;自恋一…

docker 集群管理实战mesos+zookeeper+marathon(一)

一 实验环境 1.1 系统版本&#xff0c;本实验使用cnetos7.9版本镜像 1.2 准备5台虚拟机&#xff0c;其中3台master&#xff0c;两台slave&#xff0c;使用克隆的方式 1.3 使用远程连接工具登录 1.4 修改主机名 1.5 设置域名映射 每个虚拟机都配置一下&#xff0c;这里就演示一…

SN74LV1T125DBVR SN74LV1T125单电源单缓冲门,带三态输出CMOS逻辑电平转换器

SN74LV1T125DBVR 规格信息&#xff1a; 制造商:Texas Instruments 产品品种:转换 - 电压电平 RoHS:是 电源电压-最大:5.5 V 电源电压-最小:1.6 V 最小作业温度:- 40 C 最大作业温度: 125 C 安装风格:SMD/SMT 封装 / 箱体:SOT-23-5 封装:Cut Tape 封装:MouseReel 封装…

Day24-4_26 为什使用docker,什么是docker?

一丶受大型项目部署的问题&#xff1f; 解析&#xff1a; 1、依赖关系复杂&#xff0c;容易出现兼容性问题 2、开发、测试、生产环境有差异 二丶Docker如何解决依赖的兼容问题&#xff1f; 解析&#xff1a; 1、将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包 2、将每个…

AI电销机器人系统源码部署之:freeswitch安装Linux

安装 FreeSWITCH&#xff08;一个开源的电话交换系统&#xff09;通常需要一些步骤&#xff0c;以下是在 Linux 系统上安装 FreeSWITCH 的基本指南&#xff1a; 准备工作&#xff1a; 确保你有一个运行 Linux 的服务器&#xff0c;并且有 root 或者具有 sudo 权限的用户。确保服…

ios CI/CD 持续集成 组件化专题三 IOS打包Bundle与加载Bundle中的图片

一、 读取 BundlePath (NSString *)sdkPodsBundlePath { NSBundle *bundle [NSBundle bundleForClass:[self class]]; NSString *bundlePath [bundle pathForResource:kSDKName ofType:"bundle"]; return bundlePath; } 二 、读取bundle (NSBundle *)sdkBundle {…

分类算法——ROC曲线与AUC指标(九)

知道TPR与FPR TPRTP/(TP FN) 所有真实类别为1的样本中&#xff0c;预测类别为1的比例 FPR FP/(FP TN) 所有真实类别为0的样本中&#xff0c;预测类别为1的比例 ROC曲线 ROC曲线的横轴就是FPRate&#xff0c;纵轴就是TPRate&#xff0c;当二者相等时&#xff0c;表示的意义…

使用API有效率地管理Dynadot域名,查询账户余额

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…