H5播放需要解密的m3u8音频文件
<audio ref="audio"></audio>
import CryptoJS from "crypto-js";
import Hls from 'hls.js';
methods:{
getHls (url) {
if (Hls.isSupported()) {
var hls = new Hls();
var _gthis = this;
hls.attachMedia(this.$refs.audio);
hls.on(Hls.Events.MEDIA_ATTACHED, function () {
// console.log('audio and hls.js are now bound together !');
hls.loadSource(url);
hls.on(Hls.Events.KEY_LOADED, function (event, data) {
const { frag } = data
// console.log(frag);
// debugger
var _ts = ["ts列表数据1",
"ts列表数据2",
"ts列表数据3",
"ts列表数据4",
"ts列表数据5"];
var query = frag._decryptdata._uri;
var ts = _gthis.getQueryVariable(query, 'ts');
// console.log(ts, frag._decryptdata.key)
// debugger
if (ts) {
var _ = _gthis.getQueryVariable(query, '_');
// console.log(_gthis.decrypt(_, _ts[ts]))
frag._decryptdata.key = _gthis.stringToUint8Array(_gthis.decrypt(_, _ts[ts]))
// console.log(frag._decryptdata.key)
_gthis.$refs.audio.play();
}
})
});
} else if (this.$refs.audio.canPlayType('application/vnd.apple.mpegurl')) {
this.$refs.audio.src = url
let that = this
this.$refs.audio.addEventListener('loadedmetadata', function () {
that.$refs.audio.play();
});
}
},
stringToUint8Array (str) {
var arr = [];
for (var i = 0, j = str.length; i < j; ++i) {
arr.push(str.charCodeAt(i));
}
var tmpUint8Array = new Uint8Array(arr);
return tmpUint8Array
},
getQueryVariable (query, variable) {
return decodeURIComponent((new RegExp('[?|&]' + variable + '=' + '([^&;]+?)(&|#|;|$)').exec(query) || [, ""])[1]) || null
},
decrypt (word, keyStr) {
var key = CryptoJS.enc.Utf8.parse(keyStr);
var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}
},
mounted(){
this.getHls('https://s.music.com/m/90b416a4faff0e6/000_00000.m3u8')
}
H5播放需要解密的m3u8音频文件的更多相关文章
- 在H5页面播放m3u8音频文件
需要使用hls插件 首先安装依赖npm install hls.js --save <audio ref="audio"></audio> import H ...
- S3C2416裸机开发系列19_Fatfs播放录像wav音频文件
S3C2416裸机开发系列19 Fatfs播放录像wav音频文件 国际象棋男孩 1048272975 多媒体资源,一般都是以文件的形式存储在固化存储器中.Fatfs所支持的fat32为windo ...
- C#制作文本转换为声音的demo,保存音频文件到本地
TTS(Text To Speech)可以实现把文本转换成语音并朗读出来.Windows Xp可以使用Com组件--Microsoft Speech Object Library实现TTS,Windo ...
- h5 audio播放音频文件
h5 audio播放音频文件 注:下面html中样式及不相关的内容去掉了 第一个例子 播放没有防盗链的外网音频文件是可以的 <!doctype html> <html> < ...
- H5页面实现一个Audio标签加载多个音频文件,并进行播放和展示音频长度
最近微信项目中有需求,要将微信端发送过来的amr格式的语音文件,在项目中的页面上进行展示和播放,实现方式如下: 1.首先java后台收到微信端的消息推送的时候,使用 ffmpeg将amr格式的音频文件 ...
- iOS从零开始学习直播之音频1.播放本地音频文件
现在直播越来越火,俨然已经成为了下一个红海.作为一个资深码农(我只喜欢这样称呼自己,不喜欢别人这样称呼我),我必须赶上时代的潮流,开始研究视频直播.发现视屏直播类的文章上来就讲拉流.推流.采集.美 ...
- 关于Window Server2008 服务器上无法播放音频文件的解决方案
在偌大的百度当中查找我所需要的资源信息,但网络上所描述的都不能解决,发生此类问题的人很多,但是都没有得到准确的解决方法!经个人各方面的尝试,其实非常简单的解决了无法播放音频文件的问题,如果各位今后也遇 ...
- web页面如何播放amr的音频文件
这个需求由来已久,公司的语音订单很多,每次客服都是从服务器down下语音来听.很不方便..于是我就上网扒拉看有么有什么web播放器能播放amr格式的音频文件,amr百度百科 总之找了很久.,,然后发现 ...
- 使用audio标签播放音频文件
HTML5定义了一个新的元素用来指定标准的方式来插入音频文件到web页面中:<audio>标签.使用audio标签可以控制音频的播放与停止,循环播放与播放次数设置,以及播放位置等等. 例如 ...
随机推荐
- SpringBoot面向切面编程(AOP)
Aspect (与SpringBoot整合) 总结 作用位置 try{ try{ @Around 前置环绕通知 @Before 前置通知 method.invoke(..); }catch(){ @A ...
- layui中流加载layui.flow
1.引入layui.css和layui.js 2. html中定义容器 <div id="demo"></div> js部分: layui.use('flo ...
- 浅谈持续集成(CI)、持续交付(CD)、持续部署(CD)
CI/CD是实现敏捷和Devops理念的一种方法,具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的 整个生命周期(从集成和测试阶段,到交付和部署).这些关联的事务通常被统称为"CI ...
- hdu 2072 1106学一波字符串分割,C语言与C++两种方法
hdu2072:题意:输出给定字符串中的单词数(一个句子中可能有两个相同的单词),这里的思想是把每个单词取出来,放入set(这个集合容器中不允许有相同的元素)中,最后输出该集合的大小即可. 现在的问题 ...
- k3d入门指南:在Docker中运行K3s
在本文中,我们将简单了解k3d,这是一款可让您在安装了Docker的任何地方运行一次性Kubernetes集群的工具,此外在本文中我们还将探讨在使用k3d中可能会出现的一切问题. 什么是k3d? k3 ...
- [源码解析] 并行分布式框架 Celery 之 容错机制
[源码解析] 并行分布式框架 Celery 之 容错机制 目录 [源码解析] 并行分布式框架 Celery 之 容错机制 0x00 摘要 0x01 概述 1.1 错误种类 1.2 失败维度 1.3 应 ...
- TCP 中的两个细节点
TCP 超时和重传 没有永远不出错误的通信,这句话表明着不管外部条件多么完备,永远都会有出错的可能.所以,在 TCP 的正常通信过程中,也会出现错误,这种错误可能是由于数据包丢失引起的,也可能是由于数 ...
- [bug] maven“1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符”
原因 maven打包默认采用jdk 1.5,无法识别<> 解决 在pom.xml中加入: <properties> <maven.compiler.source>1 ...
- [bug] Maven项目缺少Maven Dependencies
参考 https://blog.csdn.net/whitemiao/article/details/90177135
- php-round()四舍六入
今天被问到了四舍六入的问题,好吧,第一次听说.后来查询之后说是银行家算法用的 摘自PHP官方文档.http://php.net/manual/zh/function.round.php (PHP 4, ...