ios 怎么切.wavios 音频数据据

iOS将PCM数据文件转换为WAV文件 - 简书
iOS将PCM数据文件转换为WAV文件
最近学习写wav文件,搞了很久,踩了不少坑。将PCM数据文件转换为WAV文件其实就是在PCM数据前加上WAV的头。只需要设置好码率,声道数,采样位数就可以了。从别人移植过来一段C代码,发现在iOS各种设备平台上还有兼容性的问题,简单的修改了一下,经过几次测试,发现没什么问题了,分享给大家。
//wav头的结构如下所示:
fccType[4];
dwSamplesPerS
dwAvgBytesPerS
uiBitsPerS
int convertPcm2Wav(char *src_file, char *dst_file, int channels, int sample_rate)
int bits = 16;
//以下是为了建立.wav头而准备的变量
pcmHEADER;
if((fp=fopen(src_file,
NULL) //读取文件
printf("open pcm file %s error\n", src_file);
return -1;
if((fpCpy=fopen(dst_file,
NULL) //为转换建立一个新文件
printf("create wav file error\n");
return -1;
//以下是创建wav头的HEADER;但.dwsize未定,因为不知道Data的长度。
strncpy(pcmHEADER.fccID,"RIFF",4);
strncpy(pcmHEADER.fccType,"WAVE",4);
fseek(fpCpy,sizeof(HEADER),1); //跳过HEADER的长度,以便下面继续写入wav文件的数据;
//以上是创建wav头的HEADER;
if(ferror(fpCpy))
printf("error\n");
//以下是创建wav头的FMT;
pcmFMT.dwSamplesPerSec=sample_
pcmFMT.dwAvgBytesPerSec=pcmFMT.dwSamplesPerSec*sizeof(m_pcmData);
pcmFMT.uiBitsPerSample=
strncpy(pcmFMT.fccID,"fmt
pcmFMT.dwSize=16;
pcmFMT.wBlockAlign=2;
pcmFMT.wChannels=
pcmFMT.wFormatTag=1;
//以上是创建wav头的FMT;
fwrite(&pcmFMT,sizeof(FMT),1,fpCpy); //将FMT写入.wav文件;
//以下是创建wav头的DATA;
但由于DATA.dwsize未知所以不能写入.wav文件
strncpy(pcmDATA.fccID,"data", 4);
pcmDATA.dwSize=0; //给pcmDATA.dwsize
0以便于下面给它赋值
fseek(fpCpy,sizeof(DATA),1); //跳过DATA的长度,以便以后再写入wav头的DATA;
fread(&m_pcmData,sizeof(int16_t),1,fp); //从.pcm中读入数据
while(!feof(fp)) //在.pcm文件结束前将他的数据转化并赋给.
pcmDATA.dwSize+=2; //计算数据的长度;每读入一个数据,长度就加一;
fwrite(&m_pcmData,sizeof(int16_t),1,fpCpy); //将数据写入.wav文件;
fread(&m_pcmData,sizeof(int16_t),1,fp); //从.pcm中读入数据
fclose(fp); //关闭文件
pcmHEADER.dwSize = 0;
//根据pcmDATA.dwsize得出pcmHEADER.dwsize的值
rewind(fpCpy); //将fpCpy变为.wav的头,以便于写入HEADER和DATA;
fwrite(&pcmHEADER,sizeof(HEADER),1,fpCpy); //写入HEADER
fseek(fpCpy,sizeof(FMT),1); //跳过FMT,因为FMT已经写入
fwrite(&pcmDATA,sizeof(DATA),1,fpCpy);
//写入DATA;
fclose(fpCpy);
//关闭文件
/******************************************************************** function: g.711 decoder and encoder *******************************...
本文分别介绍如下几个PCM音频采样数据处理函数:分离PCM16LE双声道音频采样数据的左声道和右声道将PCM16LE双声道音频采样数据中左声道的音量降一半将PCM16LE双声道音频采样数据的声音速度提高一倍将PCM16LE双声道音频采样数据转换为PCM8音频采样数据从PCM...
前言 说到视频,大家自己脑子里基本都会想起电影、电视剧、在线视频等等,也会想起一些视频格式 AVI、MP4、RMVB、MKV等等。但是我们如果认真思考这些应该就有很多疑问,比如以下问题: 等等很多疑问,我们不知道这些问题的答案是因为我们没有去了解他们背后的东西,下面我会给大...
作者:郑童宇GitHub:https://github.com/CrazyZty 1.前言 音频合成在现实生活中应用广泛,在网上可以搜索到不少相关的讲解和代码实现,但个人感觉在网上搜索到的音频合成相关文章的讲解都并非十分透彻,故而写下本篇博文,计划通过讲解如何使用代码实现音...
一.声音参数基本概念: 声音是连续模拟量,计算机将它离散化之后用数字表示,就有了以下几个名词术语。 样本长度(sample):样本是记录音频数据最基本的单位,计算机对每个通道采样量化时数字比特位数,常见的有8位和16位。 通道数(channel):该参数为1表示单声道,2则...
总觉得自己没有拿的出手的东西来发表!
昨天见到一朋友激励我坚持作画,哪怕经常来个小画当练手也不要停下不画。
想来就是这样,熟能生巧嘛!
以前不懂什么叫文化壁垒 但是几年前当我第一次在日本亚马逊上看到很多茶书,香书的时候,我只能看着。 这次的书,我前3年就想买。 可是直到遇见你的帮助,才如愿。 虽然国人很多都去日本买名牌,吃的用的甚至马桶盖,而以他国国粹的文化输入的人很少(买书就是一个。) 这些书流通到国内我...
天才或许分两种,一种疯狂而热烈,活着活着就活伤了自己,像短暂的烟花,瞬间璀璨多姿炫目迷人,却在最美最高潮时猛然终结,他们是山海关卧轨的海子、麦田里扣动手枪的梵高。另一种同样天纵英才,却如涓涓细流汨汨流淌,三月春花徐徐绽放,气定神闲不偏激不愤怒,却能随心所欲善始善终,他们是携...
(一)都是夏天的出生的孩子命好,从出生开始,就知道做男孩子比女孩子好,为什么呢?在这八十年代的岁月里,爷爷奶奶关心的是媳妇能不能给生个男娃娃。中国进入了计划生育,传宗接代变得尤为可贵,上一辈的兄弟姐妹成群的画面,到了八十年代全都落了单,这是怎样的一个八十年代? 我出生在一个...
果子满四个月了,谢谢大家一直以来的关心!iOS&&代码&音频播放-.wav文件_YLL利_新浪博客
iOS&&代码&音频播放-.wav文件
//& ViewController.m
//& 播放音效-1
//& Created by 廉娟 尹
on 16/4/5.
//& Copyright &
2016年 尹. All rights reserved.
#import "ViewController.h"
SystemSoundID
completionCallback();
@interfaceViewController ()
(IBAction)play:(id)
&//按钮的连线
@implementation ViewController
- (void)viewDidLoad&
[superviewDidLoad];
url=[[NSBundlemainBundle]URLForResource:@"advance"withExtension:@"wav"];
AudioServicesCreateSystemSoundID((__bridgeCFURLRef)url, &soundId);//创建系统音效
AudioServicesAddSystemSoundCompletion(soundId, NULL,
NULL,(void*) completionCallback,
NULL);//我为创建的音效注册一个回调函数,这个音效在播放完音效以后调用
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
& & // Dispose of
any resources that can be recreated.
(IBAction)play:(id)sender&
&&AudioServicesPlayAlertSound(soundId);
completionCallback(){
UIAlertView
*alert=[[UIAlertViewalloc]initWithTitle:@"警告"message:@"出错了"delegate:nilcancelButtonTitle:nilotherButtonTitles: nil];
& [alert show];
博客等级:
博客积分:0
博客访问:1,358
关注人气:0
荣誉徽章:关于音乐播放 WAV问题【ios吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:371,195贴子:
关于音乐播放 WAV问题收藏
有蛮多歌 曲都是6声道的
放手机上听不了 全是杂音,双声道就正常
怎么办 用的是RADSONE软件,,有没有什么好的播放器支持6声道WAV播放的。。求助    ------我对我说的一切概不负责,到时出了事别赖我。~
产销量连年位于国内喷码机行业前列!
求助 顶一下    ------我对我说的一切概不负责,到时出了事别赖我。~
播放多声道无意义啊。设备又体现不出来。转双声道比较好
wav是封装格式 不是文件格式 6声道是dts es 而dts 中文全称 数字影院系统 播不了再正常不过
登录百度帐号推荐应用他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 压缩wav音频文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信