java 读取wav采样数据_读取wav文件中的音频数据操作
根据前面对wav格式信息的了解:
给出如下函数:两颗星的变量指向从数据wav文件读取的音频数据,不包括wav头部信息,获得的数据直接可以放到wavoutWrite函数中进行播放输出(当然事先还要打开设备之类的).
用CFile读取wav文件数据,作为输入.
int read_wav_head(WAVEFORMATEX *wf, char **out_buffer, int *out_len, char *in_buffer, int in_len)
{
char *lp_pos;
int itmp;
lp_pos = in_buffer;
if(in_buffer == NULL || in_len == 0 || in_len < WAVE_HEADER_SIZE || wf==NULL)
return 1;
if(strncmp(lp_pos,"RIFF",4)!=0)
return -1;
lp_pos += 4;
itmp = *((int*)lp_pos);
if(itmp != (in_len-8))
return -1;
lp_pos += 4;
if(strncmp(lp_pos,"WAVEfmt ",8)!=0)
return -1;
lp_pos += 8;
itmp = *((int*)lp_pos);
if(itmp != 16)
return -1;
lp_pos += 4;
/**//*格式信息*/
memcpy(wf,lp_pos,16);
lp_pos += 16;
if(strncmp(lp_pos,"data",4)!=0)
return -1;
lp_pos += 4;
//真正的数据长度
*out_len = *((int*)lp_pos);
lp_pos += 4;
if(*out_len != (in_len - WAVE_HEADER_SIZE))
return 1;
*out_buffer = (char*)malloc(*out_len);
if(*out_buffer == NULL)
return -2;
memcpy(*out_buffer,lp_pos,*out_len);
return 0;
}
java 读取wav采样数据_读取wav文件中的音频数据操作相关推荐
- 未越狱设备提取数据_从三星设备中提取健康数据
未越狱设备提取数据 Health data is collected every time you have your phone in your pocket. Apple or Android, ...
- mysql查询集合中的特定数据_快速查询List中指定的数据
时间:2017/5/15 作者:李国君 题目:快速查询List中指定的数据 背景:当List中保存了大量的数据时,用传统的方法去遍历指定的数据肯定会效率低下,有一个方法就是类似于数据库查询那样,根据索 ...
- python存储大量数据_如何在文件中密集地存储大量数据?
如果你期望存储一个均匀分布的数字,那么看看疯狂的物理学家的答案.但是,如果您预期存储的大部分是小数字,但需要能够存储一些大的数字,那么这些方案可能也很有用.在 如果只需要考虑长度为255字节或更少字节 ...
- django 静态数据_如何在Django中使用静态数据?
django 静态数据 Static Data means those data items that we cannot want to change, we want to use them as ...
- 【Android】使用MediaExtractor、MediaMuxer去掉视频文件中的音频数据
1 简介 本文以 mp4 文件为例,讲解去音频操作.mp4 是一种视频封装的容器,里面包含音频(audio)和视频(video)数据,对应的数据编码格式分别为 aac 和 h264.在去音频过程中,主 ...
- mysql 存储二进制数据_为什么在MySQL中存储二进制数据?
I'm a little confused - what are the pros of storing binary data in DB? Is it for security reasons, ...
- python合并两列数据_在pandas / python中的同一数据框中将两列合并...
>>> df Duration End station Start station 0 1407 NaN 14th & V St NW 1 509 NaN 21st & ...
- Java去除PDF换行符_删除FASTA文件中的换行符
我有一个fasta文件,用换行符分解序列 . 我想删除换行符 . 这是我的文件的一个例子: >accession1 ATGGCCCATG GGATCCTAGC >accession2 GA ...
- java音频无法播放_无法播放文件中的音频文件?
当我尝试播放音频时,会出现此错误 2010-08-27 09:13:40.466 VoiceRecorder [1]原因失败:操作无法完成. (OSStatus 错误-43.) 这是什么意思 我正在将 ...
- c++ 写入文件_利用Python把数据存储在csv文件中
鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧.人生最幸福的事情莫过于看到自己写的程序调试通过了! 前面我们介绍了,如何用Python做一个串口通讯的上位机.用这个上位机我们可以从E ...
最新文章
- python测试开发自学教程-2019第一期《python测试开发》课程,10月13号开学
- pythonturtle画彩虹蟒蛇_python如何用turtle库画蟒蛇?
- 百度贴吧发帖软件_贴吧自动发帖软件
- CSS魔法堂:选择器及其优先级
- hud抬头显示器哪个好_汽车加装HUD抬头显示实用吗?不低头就能获取数据
- java winform程序_重拾JAVA之WinForm实战之(四)
- RH850 Clock+LED
- 「ZigBee模块」基础实验(2)按键
- 麻雀算法极限学习机SSA-ELM回归预测及其MATLAB代码实现
- 对Linux内核tty设备的一点理解(转)
- python 中的switch
- 模式匹配与正则表达式(一)
- “消费者至上:媒体新时代 ”主题响彻IBC2019
- 省一级计算机ppt,江苏省计算机一级PPT课件.ppt
- python对象的生命周期_python对象的生命周期
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 B 合约数 (dfs+预处理)(dsu on tree)
- 为什么Vidyo 的编解码是颠覆性的创新。它的特点是什么?
- java 最小众倍数_c学习 - osc_p1q9onsn的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【资讯】福布斯:金融科技革命开端的尾声
- steam吃鸡登录显示错误服务器目前繁忙,steam服务器繁忙
热门文章
- 【一天一个C++小知识】014:C++中string与char*的区别
- 交叉熵损失的来源、说明、求导与pytorch实现
- Panoptic FPN-Panoptic Feature Pyramid Networks用于全景分割的特征金字塔网络
- 关于python保存再打开后的中文乱码的问题
- 显著性测试(Friedman test, Post-hoc Nimenyi test以及可视化)
- 域对抗网络Domain adversarial neural network及其应用相关论文
- Python中常用的一些库
- bzoj 1604 奶牛的邻居
- 如何在heroku上部署你的Django程序
- GloVe损失函数的理解