[英]ios - convert .m4a to .mp3 file programmatically
Here i have m4a format audio, I need to convert into mp3 format. 在这里,我有m4a格式的音频,我需要转换成mp3格式。
for this I used the code as 为此,我将代码用作
- (void) toMp3{
NSString *m4aFilePath = pathToSave;
NSString *mp3FileName = [NSString stringWithFormat:@"Audio%d",[audioArr count]];
mp3FileName = [mp3FileName stringByAppendingString:@".mp3"];
pathToSave = [NSString stringWithFormat:@"%@/%@", DOCUMENTS_FOLDER, mp3FileName];
NSLog(@"pathToSave :%@",pathToSave);
@try {
int read, write;
FILE *pcm = fopen([cafFilePath cStringUsingEncoding:1], "rb"); //source
fseek(pcm, 4*1024, SEEK_CUR); //skip file header
FILE *mp3 = fopen([pathToSave cStringUsingEncoding:1], "wb"); //output
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, 44100);
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 {
[self performSelectorOnMainThread:@selector(convertMp3Finish)
withObject:nil
waitUntilDone:YES];
}
}
How can i convert from m4a to mp3 format.kindly help me 我如何从m4a转换为mp3格式。请帮助我
Try this, 尝试这个,
@try
{
int read, write;
FILE *pcm = fopen([cafFilePath cStringUsingEncoding:1], "rb"); //source
fseek(pcm, 4*1024, SEEK_CUR); //skip file header
mp3 = fopen([mp3FilePath cStringUsingEncoding:1], "wb"); //output
const int PCM_SIZE = 8192*3;
const int MP3_SIZE = 8192*3;
short int pcm_buffer[PCM_SIZE*2];
unsigned char mp3_buffer[MP3_SIZE];
lame_t lame = lame_init();
lame_set_in_samplerate(lame, 11025*2);
lame_set_VBR(lame, vbr_default);
lame_init_params(lame);
int nTotalRead=0;
do {
read = fread(pcm_buffer, 2*sizeof(short int), PCM_SIZE, pcm);
nTotalRead+=read*4;
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);
// write = lame_encode_buffer(lame, pcm_buffer,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]);
}
An iOS project to convert audio from any format to any format. 一个将音频从任何格式转换为任何格式的iOS项目。 For that Its easy to use ExtAudioConverter 为此,它易于使用的ExtAudioConverter
You can try to use CoreAudio 您可以尝试使用CoreAudio
and LAME codec (this isn't included in iOS for license reasons) 和LAME编解码器(出于许可原因,未包含在iOS中)
some example of converting audio types via CoreAudio: http://developer.apple.com/library/mac/#samplecode/ConvertFile/Introduction/Intro.html 通过CoreAudio转换音频类型的一些示例: http : //developer.apple.com/library/mac/#samplecode/ConvertFile/Introduction/Intro.html
and CoreAudio docs: http://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/Introduction/Introduction.html 和CoreAudio文档: http : //developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/Introduction/Introduction.html
and supported filetypes for CoreAudio: http://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/SupportedAudioConverterFormats/SupportedAudioConverterFormats.html#//apple_ref/doc/uid/TP40003577-CH7-SW1 和支持的CoreAudio文件类型: http : //developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/SupportedAudioConverterFormats/SupportedAudioConverterFormats.html#//apple_ref/doc/uid/TP40003577-CH7-SW1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.