当前位置: 首页 > news >正文

文件服务器网站搭建教程好的竞价托管公司

文件服务器网站搭建教程,好的竞价托管公司,做网站视频学什么专业,绝对域名做网站1.背景 最近对接了一款智能手表,手环,可以应用与老人与儿童监控,环卫工人监控,农场畜牧业监控,宠物监控等,其中用到了音频传输,通过平台下发语音包,发送远程命令录制当前设备音频并…

1.背景

最近对接了一款智能手表,手环,可以应用与老人与儿童监控,环卫工人监控,农场畜牧业监控,宠物监控等,其中用到了音频传输,通过平台下发语音包,发送远程命令录制当前设备音频并将音频分包传输到服务器上生成音频文件等。其中关于音频的一些简单操作封装成了工具包。

2.音频工具包

引入jaudiotagger,用来获取MP3格式的音频时长。

        <dependency><groupId>org</groupId><artifactId>jaudiotagger</artifactId><version>2.0.1</version></dependency>

工具包代码:AudioUtils
 

package com.xxxx.common.utils;import lombok.extern.slf4j.Slf4j;
import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.audio.mp3.MP3AudioHeader;
import org.jaudiotagger.audio.mp3.MP3File;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;/*** 音频处理工具类* @author Mr.Li* @date 2023-10-26*/
@Slf4j
public class AudioUtils {/*** 二进制流转音频文件* @param binaryData* @param outputFilePath* @throws IOException*/public static boolean convertBinaryToAudio(byte[] binaryData, String outputFilePath) throws IOException {FileOutputStream outputStream = null;try {outputStream = new FileOutputStream(outputFilePath);outputStream.write(binaryData);return true;}catch (Exception e){log.error("convertBinaryToAudio:outputFilePath:{}",outputFilePath,e);return false;}finally {if (outputStream != null) {outputStream.close();}}}/*** 获取AMR格式音频长度* @param file* @return* @throws IOException*/public static int getAmrDuration(File file) throws IOException {long duration = -1;int[] packedSize = { 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0,0, 0 };RandomAccessFile randomAccessFile = null;try {randomAccessFile = new RandomAccessFile(file, "rw");// 文件的长度long length = file.length();// 设置初始位置int pos = 6;// 初始帧数int frameCount = 0;int packedPos = -1;// 初始数据值byte[] datas = new byte[1];while (pos <= length) {randomAccessFile.seek(pos);if (randomAccessFile.read(datas, 0, 1) != 1) {duration = length > 0 ? ((length - 6) / 650) : 0;break;}packedPos = (datas[0] >> 3) & 0x0F;pos += packedSize[packedPos] + 1;frameCount++;}// 帧数*20duration += frameCount * 20;} catch (Exception e){log.error("getAmrDuration:",e);}finally {if (randomAccessFile != null) {randomAccessFile.close();}}return (int)((duration/1000)+1);}/*** 计算Mp3音频格式时长* @param mp3File* @return*/public static int getMp3Duration(File mp3File) {try {MP3File f = (MP3File) AudioFileIO.read(mp3File);MP3AudioHeader audioHeader = (MP3AudioHeader) f.getAudioHeader();return audioHeader.getTrackLength();} catch (Exception e) {log.error("getMp3Duration:",e);return 0;}}public static void main(String[] args) throws IOException {String path="C:\\Users\\MyPC\\Desktop\\卡布奇诺-王逗逗.mp3";int duration = getMp3Duration(new File(path));System.out.println(duration);}
}

致力于物联网应用开发,目前有一套成熟的物联网底层服务与物联网设备管理系统,并提供API,WebHook,MQTT实现将数据实时有效的推送到客户的云平台,助力客户完成自己的SaaS平台开发。

欢迎对物联网感兴趣的朋友加我微信交流学习。

http://www.hkea.cn/news/433232/

相关文章:

  • 黑龙江省城乡和住房建设厅网站首页百度链接地址
  • 网站模板修改工具专业seo关键词优化
  • 口碑好的句容网站建设yahoo搜索
  • 深圳网站建设外贸公司价格网络营销的背景和意义
  • 长春网站建设硕成传媒seo快速排名优化公司
  • web网站开发能使用c 吗免费建立个人网站申请
  • 织梦网站修改教程视频网站优化培训学校
  • 南沙区交通和建设局网站中国十大网络销售公司
  • 免费建设网站的方法百度网址大全 官网
  • 手机网站设计制作公司微信推广费用一般多少
  • 建设网站需要什么注册域名费用一般多少钱
  • 女性门户网站源码百度指数功能有哪些
  • 怎么帮公司做网站建设谷歌搜索引擎免费入口 香港
  • 请写出网站建设前期需要做的准备外贸定制网站建设电话
  • 南京门户网站建设网络营销优秀案例
  • 2012服务器如何做网站周口网络推广哪家好
  • 贵阳搜索玩的网站网络舆情软件免费入口
  • 前端自己写代码建网站要花多少钱游戏推广在哪里接活
  • 网站建设中+网页代码nba最新排名东西部
  • 东莞企业建设网站官网有限公司百度推广深圳分公司
  • 海外推广工作内容搜索引擎优化seo是什么
  • wordpress 发短信西安网络优化大的公司
  • dreamweaver个人网站南宁求介绍seo软件
  • 网站常用素材企业培训视频
  • 北京市通州区建设委员会网站网站新站整站排名
  • 太原网站推广只选中联传媒推广排名seo
  • 企业网站建设的常见流程为百度互联网营销顾问
  • 养殖企业网站网络营销策划名词解释
  • 如何进行电子商务网站推广?百度网盘app
  • 做情趣网站需要什么资质sem推广外包