xcode 中运用lame进行caf文件到mp3文件的转换

需首先引用lamp.h,libmp3lame.a

- (void)audio_PCMtoMP3:(NSString *) cafFilePath ToMp3File:(NSString *) mp3FilePath

{

NSFileManager* fileManager=[NSFileManager defaultManager];

if([fileManager removeItemAtPath:mp3FilePath error:nil])

{

NSLog(@"删除");

}

@try {

int read, write;

FILE *pcm = fopen([cafFilePath cStringUsingEncoding:1], "rb");  //source 被转换的音频文件位置

fseek(pcm, 4*1024, SEEK_CUR);                                   //skip file header

FILE *mp3 = fopen([mp3FilePath cStringUsingEncoding:1], "wb");  //output 输出生成的Mp3文件位置

const int PCM_SIZE = 8192;

const int MP3_SIZE = 8192;

short int pcm_buffer[PCM_SIZE*2];

unsigned char mp3_buffer[MP3_SIZE];

lame_t lame = lame_init();

lame_set_in_samplerate(lame, 11025.0);

lame_set_VBR(lame, vbr_default);

lame_init_params(lame);

do {

read = fread(pcm_buffer, 2*sizeof(short int), PCM_SIZE, pcm);

if (read == 0)

write = lame_encode_flush(lame, mp3_buffer, MP3_SIZE);

else

write = lame_encode_buffer_interleaved(lame, pcm_buffer, read, mp3_buffer, MP3_SIZE);

fwrite(mp3_buffer, write, 1, mp3);

} while (read != 0);

lame_close(lame);

fclose(mp3);

fclose(pcm);

}

@catch (NSException *exception) {

NSLog(@"%@",[exception description]);

}

@finally

{

}

}

xcode 中运用lame进行caf文件到mp3文件的转换

时间: 2024-10-11 03:24:34

xcode 中运用lame进行caf文件到mp3文件的转换的相关文章

golang实现wav文件转换为mp3文件

本文并非golang内置的库进行wav转mp3,而是通过golang调用Linux的lame命令进行转换. 在Linux环境下,默认情况是没有安装lame,所以首先需要安装lame(个人保存下载文件:http://pan.baidu.com/s/1qWp71G4#path=%252Fsharesoft%252Flinux%252Flame). Linux lame 安装及使用: 1. 解压lame压缩文件:tar -vzxf lame-3.98.4.tar.gz 2. 转到解压后的文件目录,依次

(转)Xcode 中设置部分文件ARC支持

ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting).简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编 译器完成了.该机制在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机制.简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码.有一点,ARC并不是G

读取SD卡文件夹下的MP3文件和播放MP3文件

首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public List<Mp3Info> getMp3Files(String path) { SDCardRoot = Environment.getExternalStorageDirectory() .getAbsolutePath(); //获取SD卡的路径名 List<Mp3Info> mp3I

一、MP3文件概述

一.概述 MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位.MP3 的全称应为 MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是 MPEG1 标准中的声音部分,也叫 MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1.Layer2.Layer3,且分别对应 MP1.MP2.MP3 这三种声音文件,并根据不同的用途,使用不同层

四、Mp3文件类型及其判断

根据前两篇文章的分析,帧分为标签帧和数据帧,MP3文件类型是根据数据帧的类型来分的,文件类型如下表: 位率相等(Constant BitRate) CBR  Mp3文件 位率不等(Variable BitRate) Xing  Mp3文件 VBRI  Mp3文件 一.如何判断一个Mp3文件的类型,CBR文件,VBRI文件还是Xing文件 以功能流程图的形式: 二.文件播放时长的计算问题. 区分了文件类型就可以计算Mp3文件的播放时长了. 1.CBR文件的时长计算(duration) 对于计算CB

xcode中加入声音文件前所做的步骤

1创建工程 2选中工程 然后选中中间图示的“build Phases”第五个按钮 放开带三个选项“ 并点击加号 选中AudioToolbox.framework,并add. 记得在要用声音的文件中加入头文件 #import<AudioToolbox/AudioToolbox.h>. xcode中加入声音文件前所做的步骤,布布扣,bubuko.com

如何读取Xcode中的infoplist文件

关于Xcode中的infoplist文件包含很多app的信息,比如app的项目名字,id及版本号等.比如我们在做版本新特性功能的时候,我们需要从中读取我们的版本号检测版本是否发生变化,如何读取infoplist中的版本号呢?代码如下: NSString * key = @"CFBundleVersion";(这是版本号对应的key值) NSString * version = [NSBundle mainBundle].infoDictionary.[key]; 其它具体的值可以将in

Xcode中被删文件的找回,包括stroyBoard

1 到回收站中找到该文件,右键放回原位2 在xcode中 File> add File to "appName" , 选择刚刚恢复到目录下的Main.Storyboard即可恢复到xcode中注意 stroyBoard 是在你的app目录下的Base.lproj 目录中.

Xcode中关于已删除图片或文件 编译出现CpResource或者CopyPNGFile can&#39;t find file的错误

Xcode中关于已删除图片或文件 编译出现CpResource或者CopyPNGFile can't find file的错误   今天整理项目,准备把未用到的png给删了,结果 编译出现CopyPNGFile error找不到文件 和 CpResource error , No such file or directory等错误.仔细检查发现图片确实删了,代码中相关的代码也都修改掉了,但是一直编译不成功,最后google一把 Xcode也没有任何的相关解决办法. 那么只好用最粗暴的手段直接修改