Java + jQuery 实现阿里云点播
Java + jQuery 实现阿里云点播
阿里云播放器直接在线点播视频以及直播技术,此处记录点播实现过程
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
官网
准备步骤
后端相关操作
在项目 pom 中引入所需 jar 包
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vod</artifactId>
<version>2.7.0</version>
</dependency>
获取对接需要的数据
- 将 AccessKeyId 、AccessKeySecret 进行相应存储
新建 VideoController 用于接收前端获取视频播放凭证的请求
@Controller
@RequestMapping("/api/video")
public class VideoController extends AbstractBaseController {
@Autowired
private VideoServiceImpl videoServiceImpl;
/**
* 获取播放凭证
*
* @param videoId
* @return
*/
@RequestMapping(value = "/auth", method = RequestMethod.POST)
@ResponseBody
public ResponseData playAuth(@RequestParam final String videoId) {
return new SimpleActionHandler(request) {
@Override
protected void doHandle(ResponseData responseData) throws Exception {
responseData.setData(videoServiceImpl.getVideoPlayAuth(videoId));
}
}.handle();
}
}
新建 VideoServiceImpl 用于和阿里云播放器接口对接
@Service
public class VideoServiceImpl extends AbstractBaseService {
...
}
在 VideoServiceImpl 中添加获取客户端的 getClient() 方法
-
Constants.ALI_ACCESS_KEY_ID
和Constants.ALI_ACCESS_SECRET
是密钥,成对生成和使用 - 其他参数信息按照阿里云开发手册说明,均不需要改变
private DefaultAcsClient getClient() {
// 初始化配置
DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", Constants.ALI_ACCESS_KEY_ID, Constants.ALI_ACCESS_SECRET);
// 获取客户端
return new DefaultAcsClient(profile);
}
通过外部传入的视频 id 从客户端获取视频播放凭证
public String getVideoPlayAuth(String videoId) {
GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();
GetVideoPlayAuthResponse response = null;
// 播放id
request.setVideoId(videoId);
try {
response = getClient().getAcsResponse(request);
} catch (ClientException e) {
logger.error("视频客户端获取失败!", e);
}
if (response != null) {
return response.getPlayAuth();
}
return null;
}
前端相关操作
引入播放器所需要的 css/js 文件
- 以下引入的 js 文件为通用版本,包括了 flash 和 h5 的播放器
- 如果只想单独引入 flash 或 h5 ,只需要将名称中间加上对应标识即可,例如
aliplayer-h5-min.js
- css 文件为公有版本,无需区分类型
<link rel="stylesheet" href="//g.alicdn.com/de/prismplayer/2.5.1/skins/default/aliplayer-min.css"/>
<script charset="utf-8" type="text/javascript" src="//g.alicdn.com/de/prismplayer/2.5.1/aliplayer-min.js"></script>
准备待转化为播放器的标签内容
- 标签中的
data-id
是将视频传入到阿里云播放器后端之后返回的一个 vid - 该 vid 可以通过 接口上传 也可以通过阿里云后端上传,此处不做介绍
<div class="prism-player" id="prismPlayer" data-id="281fc1687cb245658dc5e7462e54bc66"></div>
初始化视频播放器
-
$.ts.doAction
是经过封装后的 ajax 操作 -
Aliplayer({...})
则是具体的播放器初始化操作
var playerTag = target.find("#prismPlayer");
var videoId = playerTag.data("id");
// 移除文字标识
playerTag.empty();
// 非空验证
if (videoId === undefined) {
return;
}
$.ts.doAction("/api/video/auth", {
videoId: videoId
}, function () {
Aliplayer({
id: "prismPlayer",
autoplay: true,
width: "100%",
vid: videoId,
playauth: this.data
});
}, '', '', '');

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
WPF绘制深度不同颜色的3D模型填充图和线框图
原文: WPF绘制深度不同颜色的3D模型填充图和线框图 在机械测量过程中,测量的数据需要进行软件处理。通常测量一个零件之后,需要重建零件的3D模型,便于观察测量结果是否与所测工件一致。 重建的3D模型需要以填充图和线框图两种方式切换显示,其中填充图的材质需要根据不同深度进行着色,线框图需要消隐(不能透视)。以圆柱为例,如下图: 由于WPF对DirectX进行了封装,并构建出一套简单的3D绘图框架,因此我们可以快速的创建所需要的3D模型,便于像我这样的对三维计算机图形学不太了解的人进行开发。 关于WPF 3D绘图的基础,大家可以参考《Practical WPF Charts and Graphics》一书,里面也讲到一些3D显示的计算机图形学和数学基础。 下面我们开始3D模型的构建。 在WPF中,我们可以按如下步骤进行操作: 1、创建一个Viewport3D对象来host 三维模型; 2、继承ModelVisual3D或者ModelUIElement3D来定义3D对象; 3、指定3D场景中的光源,在WPF中光源也是一种ModelVisual3D; 4、创建一个相机来进行3D图形到2D显示...
-
下一篇
List抛出ConcurrentModificationException
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82796593 List抛出ConcurrentModificationException 在对 List 进行遍历的同时进行 remove 元素操作,可能会抛出 java.util.ConcurrentModificationException 异常 更多精彩 更多技术博客,请移步 asing1elife’s blog 错误示范 在遍历 List 时获取元素实际上通过迭代器在进行,迭代器在获取下一个元素时会对 modCount 和 expectedCount 进行匹配 遍历的同时直接对 List 进行 remove 操作,会导致只有 modCount 发生变化,而expectedCount 未发生变化 所以迭代器在获取下一个元素会发现两个值不匹配则抛出 java.util.ConcurrentModificationException 异常 for (CourseDTO course : cours...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL数据库在高并发下的优化方案
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作