2011-01-28 13 views
5

録音した.WAVファイルをiOSの.M4Aファイルに変換する方法はありますか?WAVファイルをM4Aに変換するには?

また、.M4Aファイルを.WAVファイルに変換する必要があります。

私はAudio Queue Servicesを試しましたが、できません。

答えて

3

この投稿:From iPod Library to PCM Samples in Far Fewer Steps Than Were Previously Necessaryは、ユーザーのipodライブラリからファイルを読み込んで、ファイルシステムにリニアpcm(wav)ファイルとして書き込む方法を説明しています。

私はあなたの代わりに、ファイルシステムからファイルをロードするためのコードを作成する必要があります。変更は、資産がどこにあるかを説明しNSURLであろうと信じている:あなたがしようとしている場合

-(IBAction) convertTapped: (id) sender { 
// set up an AVAssetReader to read from the iPod Library 
NSURL *assetURL = [[NSURL alloc] initFileURLWithPath:@"your_m4a.m4a"]; 
AVURLAsset *songAsset = 
    [AVURLAsset URLAssetWithURL:assetURL options:nil]; 

NSError *assetError = nil; 
AVAssetReader *assetReader = 
    [[AVAssetReader assetReaderWithAsset:songAsset 
      error:&assetError] 
     retain]; 
if (assetError) { 
    NSLog (@"error: %@", assetError); 
    return; 
} 

反対方向には、出力端に書式を変更する必要があります。

NSDictionary *outputSettings =[NSDictionary dictionaryWithObjectsAndKeys: 
[NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey, 
[NSNumber numberWithFloat:44100.0], AVSampleRateKey, 
[NSNumber numberWithInt:2], AVNumberOfChannelsKey, 
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], 
    AVChannelLayoutKey, 
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey, 
[NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved, 
[NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey, 
[NSNumber numberWithBool:NO], AVLinearPCMIsBigEndianKey, 
nil]; 

私はM4Aのためにここに行くだろう正確な設定がわからないが、これは近いあなたを取得する必要があります。

もう1つの方法は、ffmpeg libに読み込んでそこですべての変換を行うことですが、それはあなたが望むものと違っているようです。

+0

ここでchannelLayoutとは何ですか?リンクされた投稿ごとに –

+0

:AudioChannelLayout channelLayout; memset(&channelLayout、0、sizeof(AudioChannelLayout)); channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo; – jonbro

関連する問題