2011-04-13 19 views
0

私のiPhone/ipadアプリケーションで圧縮されたサウンドファイルを解凍します。 私のアプリでは、.wav形式に変換したい.m4aファイルがあります。 これはコードによってどのように可能ですか?圧縮されたサウンドファイルを非圧縮ファイルに変換する方法

+0

で、より広範なサンプルコードを意味しますか?何かが圧縮されると、サンプリングされたサウンドの品質/解像度を上げることはできません。 – Widor

+0

はい、実際に私は圧縮ファイルの波形を知りたいです – iPhoneDev

答えて

0

あなたがこれを行うにはExtAudioFileを使用することができます。

CFURLRef url = /* ... */; 
ExtAudioFileRef eaf; 
OSStatus err = ExtAudioFileOpenURL((CFURLRef)url, &eaf); 
if(noErr != err) 
    /* handle error */ 

AudioStreamBasicDescription format; 
format.mSampleRate = 44100; 
format.mFormatID = kAudioFormatLinearPCM; 
format.mFormatFlags = kAudioFormatFormatFlagIsPacked; 
format.mBitsPerChannel = 16; 
format.mChannelsPerFrame = 2; 
format.mBytesPerFrame = format.mChannelsPerFrame * 2; 
format.mFramesPerPacket = 1; 
format.mBytesPerPacket = format.mFramesPerPacket * format.mBytesPerFrame; 

err = ExtAudioFileSetProperty(eaf, kExtAudioFileProperty_ClientDataFormat, sizeof(format), &format); 

/* Read the file contents */ 

はもちろん、私はちょうど任意に取得するためのフォーマットとして16ビット整数ステレオを選択しましたが、うまくいけば、アイデアは明らかです。 ExtAudioFileにあなたのオーディオデータをどのようなフォーマットにするかを指定するだけで、ファイルのフォーマットから要求された(クライアント)フォーマットに自動的に変換されます。

Appleはあなたが_format_を変換http://developer.apple.com/library/mac/#samplecode/ConvertFile/Introduction/Intro.html

+0

上記の正確なコードを(フォーマットフラグのスタッターを修正した後に)試してみると、 "fmt?"エラー。どのような問題が起こる可能性がありますか? –

関連する問題