✨ audio(pcm): add pcm convert
添加了简单的16bit PCM数据采样i但转换功能 1. 添加页面跳转:html\uac_pcm_data_convert.html 2. 添加hex_to_int的带符号转换方法 end of segment 🔧 web(switch): add web pages switch feature 添加了页面跳转的框架 1. 添加页面跳转功能 2. 添加主页相关的内容以及欢迎页面 end of segment ✨ utools(plugin): add utools plugin support 添加了utools的插件功能 1. 添加插件配置 2. 添加插件的图标 end of segment
This commit is contained in:
parent
d241e00820
commit
3a38835a15
@ -2,11 +2,10 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
<link rel="stylesheet" href="../css/bootstrap.min.css">
|
||||
<script src="../js/jquery.min.js"></script>
|
||||
<script src="../js/bootstrap.min.js"></script>
|
||||
<title>test</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
69
html/uac_pcm_data_convert.html
Normal file
69
html/uac_pcm_data_convert.html
Normal file
@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="../css/bootstrap.min.css">
|
||||
<script src="../js/jquery.min.js"></script>
|
||||
<script src="../js/bootstrap.min.js"></script>
|
||||
<script src="../js/hex_to_int_16bit.js"></script>
|
||||
<title>uac_pcm_data_convert</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<p>UAC PCM data convert</p>
|
||||
<label for="name">USB PCM数据</label>
|
||||
<textarea id="text_input_raw_pcm" class="form-control" rows="6"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<p>
|
||||
<button type="button" class="btn btn-primary btn-lg btn-block" href = "javascript:void(0);" onclick="convert_usb_pcm_data()">运行</button>
|
||||
</p>
|
||||
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<label for="name">解析后数据</label>
|
||||
<textarea id="text_outputconvert_data" class="form-control" rows="6"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
<script>
|
||||
function convert_usb_pcm_data() {
|
||||
var input = document.getElementById("text_input_raw_pcm");
|
||||
var output = document.getElementById("text_outputconvert_data");
|
||||
var input_raw_data = input.value;
|
||||
var maxdata = 0;
|
||||
var temp_data = 0;
|
||||
var output_data = "";
|
||||
|
||||
// console.log(input_raw_data);
|
||||
output.value = "";
|
||||
|
||||
var input_list = input_raw_data.split(" ");
|
||||
|
||||
for ( var i = 0; i < input_list.length; i ++) {
|
||||
temp_data = hex2int(input_list[i]);
|
||||
output_data += temp_data.toString() + " ";
|
||||
if (temp_data > maxdata) {
|
||||
maxdata = temp_data;
|
||||
}
|
||||
}
|
||||
|
||||
output_data += "\r\n-------------------------\r\n";
|
||||
output_data += "max value = " + maxdata.toString();
|
||||
// console.log(output_data);
|
||||
output.value = output_data;
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
</html>
|
||||
20
index.html
20
index.html
@ -14,24 +14,24 @@
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="#">impressionyang的工具箱</a>
|
||||
<a class="navbar-brand" href = "javascript:void(0);" onclick ="switch_pages_by_file_path('html/hello.html')">impressionyang的工具箱</a>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">计划</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
Java
|
||||
功能
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">jmeter</a></li>
|
||||
<li><a href="#">EJB</a></li>
|
||||
<li><a href = "javascript:void(0);" onclick ="switch_pages_by_file_path('html/uac_pcm_data_convert.html')">UAC PCM音频采样点转换</a></li>
|
||||
<!-- <li><a href="#">EJB</a></li>
|
||||
<li><a href="#">Jasper Report</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">分离的链接</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">另一个分离的链接</a></li>
|
||||
<li><a href="#">另一个分离的链接</a></li> -->
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -40,8 +40,16 @@
|
||||
</nav>
|
||||
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<iframe class="embed-responsive-item" src="html/hello.html"></iframe>
|
||||
<iframe id="pages_container" class="embed-responsive-item" src="html/hello.html"></iframe>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
<script>
|
||||
function switch_pages_by_file_path(file_path) {
|
||||
var container = document.getElementById("pages_container");
|
||||
container.src = file_path;
|
||||
}
|
||||
</script>
|
||||
|
||||
</html>
|
||||
33
js/hex_to_int_16bit.js
Normal file
33
js/hex_to_int_16bit.js
Normal file
@ -0,0 +1,33 @@
|
||||
function hex2int(hexStr) {
|
||||
let twoStr = parseInt(hexStr, 16).toString(2); // 将十六转十进制,再转2进制
|
||||
let bitNum = hexStr.length * 4; // 1个字节 = 8bit ,0xff 一个 "f"就是4位
|
||||
if (twoStr.length < bitNum) {
|
||||
while (twoStr.length < bitNum) {
|
||||
twoStr = "0" + twoStr;
|
||||
}
|
||||
}
|
||||
if (twoStr.substring(0, 1) == "0") {
|
||||
// 正数
|
||||
twoStr = parseInt(twoStr, 2); // 二进制转十进制
|
||||
return twoStr;
|
||||
} else {
|
||||
// 负数
|
||||
let twoStr_unsign = "";
|
||||
|
||||
// console.log("hex2int--->" + parseInt(twoStr, 2));
|
||||
twoStr = parseInt(twoStr, 2) - 1; // 补码:(负数)反码+1,符号位不变;相对十进制来说也是 +1,但这里是负数,+1就是绝对值数据-1
|
||||
// console.log("hex2int--->" + twoStr);
|
||||
|
||||
twoStr = twoStr.toString(2);
|
||||
twoStr_unsign = twoStr.substring(1, bitNum); // 舍弃首位(符号位)
|
||||
// 去除首字符,将0转为1,将1转为0 反码
|
||||
twoStr_unsign = twoStr_unsign.replace(/0/g, "z");
|
||||
twoStr_unsign = twoStr_unsign.replace(/1/g, "0");
|
||||
twoStr_unsign = twoStr_unsign.replace(/z/g, "1");
|
||||
|
||||
// console.log("hex2int--->" + twoStr_unsign);
|
||||
// console.log("hex2int--->" + (-twoStr_unsign));
|
||||
twoStr = parseInt(-twoStr_unsign, 2);
|
||||
return twoStr;
|
||||
}
|
||||
}
|
||||
11
plugin.json
Normal file
11
plugin.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"main": "index.html",
|
||||
"logo": "logo.png",
|
||||
"features": [
|
||||
{
|
||||
"code": "impress",
|
||||
"explain": "impressionyang's impress tools",
|
||||
"cmds":["impress", "imt"]
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user