1:开通视频点播服务,并可以上传视频做一些设置,转码,分类等

2:根据官方提供sdk示例, 实现上传视频功能

3:代码实现

引入依赖

<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.1</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-vod</artifactId><version>2.15.11</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.28</version></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20170516</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version></dependency>

这个块有个问题,使用上传SDK aliyun-java-vod-upload-1.4.13.jar时,这个包下载不下来,是由于这个包没有开源,

那么先解决这个问题,

1:先在官方文档中下载Java上传SDK及示例代码VODUploadDemo-java-1.4.13.zip

2:解压后打开lib目录,然后打开cmd窗口,执行如下命令,版本号根据自己的修改

mvn install:install-file -DgroupId=com.aliyun -DartifactId=aliyun-sdk-vod-upload -Dversion=1.4.11 -Dpackaging=jar -Dfile=aliyun-java-vod-upload-1.4.11.jar

3:根据下载的aliyun-java-vod-upload-1.4.13.jar中的   UploadVideoDemo.java文件参照,里面都是上传案例,我们用流的方式上传,代码如下

controller层

    @PostMapping("uploadAlyiVideo")public R uploadAlyiVideo(MultipartFile file) {//返回上传视频idString videoId = vodService.uploadVideoAly(file);return R.ok().data("videoId",videoId);}

service层

    @Overridepublic String uploadVideoAly(MultipartFile file) {try {//accessKeyId, accessKeySecret//fileName:上传文件原始名称// 01.03.09.mp4String fileName = file.getOriginalFilename();//title:上传之后显示名称String title = fileName.substring(0, fileName.lastIndexOf("."));//inputStream:上传文件输入流InputStream inputStream = file.getInputStream();UploadStreamRequest request = new UploadStreamRequest(ConstantVodUtils.ACCESS_KEY_ID,ConstantVodUtils.ACCESS_KEY_SECRET, title, fileName, inputStream);UploadVideoImpl uploader = new UploadVideoImpl();UploadStreamResponse response = uploader.uploadStream(request);String videoId = null;if (response.isSuccess()) {videoId = response.getVideoId();} else { //如果设置回调URL无效,不影响视频上传,可以返回VideoId同时会返回错误码。其他情况上传失败时,VideoId为空,此时需要根据返回错误码分析具体错误原因videoId = response.getVideoId();}return videoId;}catch(Exception e) {e.printStackTrace();return null;}}

4:删除视频案例:

controller层:

    //根据视频id删除阿里云视频@DeleteMapping("removeAlyVideo/{id}")public R removeAlyVideo(@PathVariable String id) {try {//初始化对象DefaultAcsClient client = InitVodCilent.initVodClient(ConstantVodUtils.ACCESS_KEY_ID, ConstantVodUtils.ACCESS_KEY_SECRET);//创建删除视频request对象DeleteVideoRequest request = new DeleteVideoRequest();//向request设置视频idrequest.setVideoIds(id);//调用初始化对象的方法实现删除client.getAcsResponse(request);return R.ok();}catch(Exception e) {e.printStackTrace();throw new MyRuntimeException(20001,"删除视频失败");}}//删除多个阿里云视频的方法//参数多个视频id  List videoIdList@DeleteMapping("delete-batch")public R deleteBatch(@RequestParam("videoIdList") List<String> videoIdList) {vodService.removeMoreAlyVideo(videoIdList);return R.ok();}

service层

    @Overridepublic void removeMoreAlyVideo(List videoIdList) {try {//初始化对象DefaultAcsClient client = InitVodCilent.initVodClient(ConstantVodUtils.ACCESS_KEY_ID, ConstantVodUtils.ACCESS_KEY_SECRET);//创建删除视频request对象DeleteVideoRequest request = new DeleteVideoRequest();//videoIdList值转换成 1,2,3String videoIds = StringUtils.join(videoIdList.toArray(), ",");//向request设置视频idrequest.setVideoIds(videoIds);//调用初始化对象的方法实现删除client.getAcsResponse(request);}catch(Exception e) {e.printStackTrace();throw new MyRuntimeException(20001,"删除视频失败");}}public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("11");list.add("22");list.add("33");// 11,22,33String join = StringUtils.join(list.toArray(), ",");System.out.println(join);}

三:实现在浏览器播放阿里云点播视频

注意: 其中如果不是加密转码视频,就直接用视频地址播放就可以,但是如果是转码加密视频,就需要获取播放凭证后才能转码

参考文档:https://help.aliyun.com/document_detail/61109.html

一、后端获取播放凭证

    //根据视频id获取视频凭证@GetMapping("getPlayAuth/{id}")public R getPlayAuth(@PathVariable String id) {try {//创建初始化对象DefaultAcsClient client =InitVodCilent.initVodClient(ConstantVodUtils.ACCESS_KEY_ID, ConstantVodUtils.ACCESS_KEY_SECRET);//创建获取凭证request和response对象GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();//向request设置视频idrequest.setVideoId(id);//调用方法得到凭证GetVideoPlayAuthResponse response = client.getAcsResponse(request);String playAuth = response.getPlayAuth();return R.ok().data("playAuth",playAuth);}catch(Exception e) {throw new MyRuntimeException(20001,"获取凭证失败");}}

二、前端播放器整合

<template><div><!-- 阿里云视频播放器样式 --><link rel="stylesheet" href="https://g.alicdn.com/de/prismplayer/2.8.1/skins/default/aliplayer-min.css" ><!-- 阿里云视频播放器脚本 --><script charset="utf-8" type="text/javascript" src="https://g.alicdn.com/de/prismplayer/2.8.1/aliplayer-min.js" /><!-- 定义播放器dom --><div id="J_prismPlayer" class="prism-player" /></div>
</template>
<script>
import vod from '@/api/vod'export default {layout: 'video',//应用video布局asyncData({ params, error }) {console.log(params)console.log(params.vid)return vod.getPlayAuth(params.vid).then(response => {return { playAuth: response.data.data.playAuth,vid: params.vid}})},mounted() { //页面渲染之后  creatednew Aliplayer({id: 'J_prismPlayer',vid: this.vid, // 视频idplayauth: this.playAuth, // 播放凭证encryptType: '1', // 如果播放加密视频,则需设置encryptType=1,非加密视频无需设置此项width: '100%',height: '500px',// 以下可选设置cover: 'http://guli.shop/photo/banner/1525939573202.jpg', // 封面qualitySort: 'asc', // 清晰度排序mediaType: 'video', // 返回音频还是视频autoplay: false, // 自动播放isLive: false, // 直播rePlay: false, // 循环播放preload: true,controlBarVisibility: 'hover', // 控制条的显示方式:鼠标悬停useH5Prism: true, // 播放器类型:html5}, function(player) {console.log('播放器创建成功')})}}
</script>

可给视频播放增加一些功能配置:

在线配置参考:https://player.alicdn.com/aliplayer/setting/setting.html

spring boot 实现 阿里云视频点播 功能 实现视频上传,视频删除,视频播放功能相关推荐

  1. Spring Boot集成阿里云视频点播服务的过程记录

    阿里云视频点播 效果预览 视频点播 视频点播概述 功能 优势 流程 环境准备 开通视频点播 创建RAM用户并授权 上传SDK 上传流程 下载上传SDK 安装上传SDK 集成Java上传SDK 异常说明 ...

  2. 阿里云视频点播(媒资上传)

    在真实项目中,需要对阿里云点播操作进行代码集成. 1.写在配置文件中(application.yml) #阿里云配置 aliyun:region: cn-shanghai #点播地域标识accessK ...

  3. 玩转spring boot——结合阿里云持续交付

    前言 在互联网项目中,项目测试.部署往往需要花费大量时间.传统方式是在本地打包.测试完毕程序,然后通过ftp上传至服务器,再把测试的配置文件修改为生产环境的配置文件,最后重新运行服务.这一过程如果交给 ...

  4. 阿里云视频点播功能使用

    1.开通并且获得密钥和安全密钥 1.开通 1. 2. 3. 4. 2.获得配置参数 1.启用 2.添加转码模组 3.获取AccessKeyId和AccessKey Secret 2.使用 1.下载Ja ...

  5. spring boot 整合 阿里云oss上传

    Spring Boot 整合 阿里云OSS上传 OSS申请和配置 1. 注册登录 2.开通以及配置 springboot整合使用 1. 进入我们springboot的项目中,导入oss相关依赖 2. ...

  6. springboot整合阿里云视频点播服务Vod——实现视频上传、删除、播放

    视频点播(ApsaraVideo VoD,简称VoD)是集视频采集.编辑.上传.媒体资源管理.自动化转码处理(窄带高清™).视频审核分析.分发加速于一体的一站式音视频点播解决方案. 阿里云视频点播服务 ...

  7. 阿里云视频点播服务Vod工具类——实现视频上传、删除、播放

    阿里云视频点播服务Vod工具类--实现视频上传.删除.播放 阿里云视频点播服务Vod工具类 maven依赖 工具类实现 工具类的测试 获取视频 1. 获取单个视频的播放地址和ID: 2. 获取所有视频 ...

  8. 前后端分离 -- 深入浅出 Spring Boot + Vue + ElementUI 实现相册管理系统【文件上传 分页 】 文件上传也不过如此~

    前后端分离 – 深入浅出系列 Spring Boot + Vue + ElementUI 实现相册管理系统[文件上传 分页 ] 文件上传也不过如此~ 引言 Hello,我是Bug终结者,一名热爱后端J ...

  9. python程序发布到阿里云云服务器_Python实现阿里云服务器里的文件上传与下载

    Python实现阿里云服务器里的文件上传与下载 018.4.15 背景: 老实说,因为现实的各种原因造成电脑换来换去是可能出现的事情,但是电脑能换,电脑里的环境却不能换.我就曾在三个电脑里各自安装了虚 ...

最新文章

  1. 杨元庆:兔子要变成狼靠的是体制的激励
  2. Numpy入门教程:05. 逻辑函数
  3. 使用xshell5 从CentOS主机download资料
  4. 自学python要下载什么软件-Python学习需要安装的工具
  5. vshpere esxi6.7安装
  6. 通用型CRM还是行业型CRM?-定制为王
  7. C语言课后习题(45)
  8. 【英语学习】【Level 07】U03 Amazing wonders L5 Modern structures in China
  9. Flash与数学: 旋轮线(2)
  10. 单通道GNSS模拟器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  11. Windows10自带应用的卸载和恢复
  12. 电源设计经验之 MOS 管驱动电路
  13. iPhone升级iOS 16后Siri无法正常工作怎么办?3种解决办法
  14. 面向未来:元宇宙是可望不可及的彼岸世界
  15. VR技术与生态:大咖跟你聊VR未来
  16. SQL 已更新或删除的行值要么不能使该行成为唯一行
  17. Android APK 32位和64位 的区别
  18. 煮酒论语言 -- 曹孟德黑尽天下语言
  19. Apache DolphinScheduler 是如何诞生的
  20. Windows中安装配置Maven详细教程

热门文章

  1. pmp通过率都97%,只要考都能过?还有啥价值?
  2. 计算机知识二级竞赛流程,计算机知识竞赛方案.doc
  3. stm32毕设分享 RFID门禁防盗报警系统(源码+论文)
  4. [BEGIN,分隔符,字符串,字段,制表符]Linux:“awk”命令的妙用
  5. 大数据开发基础入门与项目实战(三)Hadoop核心及生态圈技术栈之5.即席查询Impala介绍及入门使用
  6. 关于无线网卡中的一个参数:DB的介绍
  7. 数据库表结构设计原则
  8. 自然辩证法小论文选题_自然辨证法论文题目
  9. 昨天的自动化仓储物流系统,为何一转脸就变成了智能化、智慧化?
  10. 传统售楼中心已建设数字展厅,以多媒体技术给客户最佳看楼盘体验