2011-09-16 21 views
1

サウンドファイルを読みたいので、このファイルを自分で生成して、大胆で出力できるものを浮動小数点配列に入れて、浮動小数点mySoundOneSecond [44100]にすることができます。私がiOSデバイスで好きなように「生の」浮動小数点データを操作できるように、データがいっぱいになっています。iOSの浮動小数点型配列にサウンドファイルを読み込む方法は?

答えて

1

CoreAudioでExtFileReader C APIを使用する必要があります。それはあなたのファイルをlPCMに読み込みます。しかし、技術的には、得られるバッファは浮動小数点値を保持するのではなく、AudioUnitSampleType型の固定小数点型の8.24ビット整数を保持することに注意してください。このタイプのtypedefに惑わされないでください、それは8.24bitです。

0

NSMutableDataおそらく、このファイルを読むのが最も簡単な方法です。このような何か::

NSMutableData *data = [NSMutableData dataWithContentsOfFile:path options:0 error:&error]; 
if (!data) { ... do something with the error ... } 

float *mySoundOnSecond = [data mutableBytes]; 

あなたがこの種のアプリケーションのためにあなたのオプションでNSDataReadingMappedを通過したいことがあります。それは一度にすべてを読むのではなく、ファイルをメモリにマッピングすることで時間を節約します。

この方法では、スレッドがブロックされることに注意してください。ファイルが大きい場合は、バックグラウンドスレッドで実行するか、非同期読み取りアプローチを使用します。さまざまなオプションについては、File System Programming Guideを参照してください。

+0

こんにちは、ロブ、ありがとう - パフォーマンスの問題は、私がやっていることについては大きな問題ではありませんが、どのような形式のオーディオは、 、OK、もちろん理解していますが、どの形式が適切にendian'dとヘッダレスバイトをこの形式で与えるのですか?ありがとう – Nektarios

+0

これは通常「RAW」または「PCM」形式と呼ばれます。私はAudacityがそれらを書くかどうか分からない。 –

関連する問題