Java + jQuery 实现阿里云点播

本文涉及的产品
视频点播 VOD,流量+存储+转码
简介: 版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82788154 ...
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82788154

Java + jQuery 实现阿里云点播

阿里云播放器直接在线点播视频以及直播技术,此处记录点播实现过程

更多精彩

官网

获取阿里云视频播放凭证
阿里云Aliplayer播放器

准备步骤

  1. 创建 阿里云账号
  2. 根据 流程 完成实名认证,以确保可以使用阿里云相应服务
  3. 在密钥管理页面获取阿里云访问密钥,AccessKeyId 和 AccessKeySecret

后端相关操作

在项目 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>

获取对接需要的数据

  1. 将 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() 方法

  1. Constants.ALI_ACCESS_KEY_IDConstants.ALI_ACCESS_SECRET 是密钥,成对生成和使用
  2. 其他参数信息按照阿里云开发手册说明,均不需要改变
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 文件

  1. 以下引入的 js 文件为通用版本,包括了 flash 和 h5 的播放器
  2. 如果只想单独引入 flash 或 h5 ,只需要将名称中间加上对应标识即可,例如 aliplayer-h5-min.js
  3. 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>

准备待转化为播放器的标签内容

  1. 标签中的 data-id 是将视频传入到阿里云播放器后端之后返回的一个 vid
  2. 该 vid 可以通过 接口上传 也可以通过阿里云后端上传,此处不做介绍
<div class="prism-player" id="prismPlayer" data-id="281fc1687cb245658dc5e7462e54bc66"></div>

初始化视频播放器

  1. $.ts.doAction 是经过封装后的 ajax 操作
  2. 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
    });
}, '', '', '');
目录
相关文章
|
6月前
|
存储 Java 编译器
Java中的抽象类与接口,在阿里工作5年了
Java中的抽象类与接口,在阿里工作5年了
|
2月前
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
2月前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
|
3月前
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。
|
3月前
|
小程序 JavaScript Java
【资料】阿里Java开发手册
本文是关于分享阿里Java开发手册资源及促进编程规范学习的指南。作者以个人经历引入,讲述了公司领导通过细致讲解阿里Java开发手册,提升了团队对代码质量和编程规范的认识
832 0
【资料】阿里Java开发手册
|
3月前
|
缓存 监控 Java
"Java垃圾回收太耗时?阿里HBase GC优化秘籍大公开,让你的应用性能飙升90%!"
【8月更文挑战第17天】阿里巴巴在HBase实践中成功将Java垃圾回收(GC)时间降低90%。通过选用G1垃圾回收器、精细调整JVM参数(如设置堆大小、目标停顿时间等)、优化代码减少内存分配(如使用对象池和缓存),并利用监控工具分析GC行为,有效缓解了高并发大数据场景下的性能瓶颈,极大提升了系统运行效率。
77 4
|
3月前
|
JavaScript Java
点击按钮,向下添加目录。Java script+jQuery写法
点击按钮,向下添加目录。Java script+jQuery写法
23 1
|
3月前
|
机器学习/深度学习 存储 缓存
Java本地高性能缓存实践问题之阿里云机器学习团队开源社区的问题如何解决
Java本地高性能缓存实践问题之阿里云机器学习团队开源社区的问题如何解决
|
3月前
|
安全 Java 程序员
阿里开发手册 嵩山版-编程规约 (四)OOP规约-Java程序员必看知识点!!!
《阿里开发手册 嵩山版》的OOP规约部分强调了面向对象编程的最佳实践,包括正确使用静态方法、覆写方法的注解、可变参数的使用、接口的稳定性、equals和compareTo方法的使用、BigDecimal的正确比较、包装类与基本数据类型选择、POJO类的属性和方法设计等,以提升代码的质量和维护性。
|
3月前
|
JavaScript Java
分别使用java script和jQuery添加页面元素
分别使用java script和jQuery添加页面元素
32 0

热门文章

最新文章

下一篇
无影云桌面