問題タブ [extaudiofile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
core-audio - ExtAudioFileWrite を使用してファイルの最後に書き込む
ExtAudioFileWrite を使用して、ファイルを開いてデータを追加しようとしています。現在、作成/初期書き込み(作成時)/変換は問題なく機能しますが、残念ながら、後で書き込みのためにファイルを開くことができないようです。ファイルを開くように見える関数は 1 つExAudioFileOpenURL
だけです。ただし、読み取り専用です。では、書き込み用にファイルを開くことができない場合、ファイルの最後に書き込むにはどうすればよいでしょうか?
cocoa - AudioToolBox を使用して Wave ファイルを NSFileWrapper に保存する
サンプルをファイルに保存するために、AudioToolBox フレームワークの ExtAudioFileCreateWithURL と ExtAudioFileWrite を使用しました。しかし、NSDocument を使用しているため、NSFileWrapper に保存する必要があります。
NSFileWrapperinitRegularFileWithContents:(NSData*)contents
メソッドを使用できるように、NSMutableData オブジェクトで ExtAudioFileXXX 関数を使用する方法はありますか?
ファイルに保存するためのコードを削除しました (動作します):
c++ - ExtAudioFileOpenURL リーク
オーディオ ファイルを開いて読み取ると、毎回この呼び出し元から放棄された malloc ブロックが返されます。
ループでは、このようなデータを設定します (これは、インストルメントのメモリ使用量として 99.7% としてマークされています)。data = (short*)malloc(kSegmentSize*sizeof(short));
free(data);
そして、各反復の終わりにこのように解放します。
ここで何が起こっているのかよくわかりません。助けていただければ幸いです。
編集: KSegmentSize は、最小 6000 から最大 50000 (投機的) まで、数千単位で変化します。
楽器のトレース:
macos - ExtAudioFileWrite の AudioUnit 形式からの変換
私は完全に Apple AudioUnits - DLSSynth、Delay、Stereo Mixer で作られた AUGraph を持っています。これの出力をExtAudioFileにキャプチャしようとしています。私の問題は、AudioUnit 形式から ExtAudioFile が使用できるファイル形式に変換する必要があると思うことです。AUGraph から ASBD を取得すると、
しかし、fmt を取得せずにその ASBD で ExtAudioFile を作成することはできませんか? エラー。このストリームをファイルに記録するための正しい方向を誰かが指摘できますか?
ios - iOS の ExtAudioFileRead がエラー コード -50 で落ちる
ExtAudioFileRead 関数を使用して、オーディオ ファイルをメモリに読み込みます。しかし、常にコード -50 のエラーが発生することがわかりました。つまり、間違ったパラメーターを関数に渡します。しかし、どれが間違ったパラメータなのかわかりません。
オーディオ ファイルのデータ形式は alac、sampleRate 44100k、2 チャンネルです。
私のコードを以下に示します。
macos - ClientDataFormat 設定エラー
マルチチャンネルの Apple Lossless ファイルの特定の構成のエンコードに問題があります。2、4、および 6 チャネル構成では問題ありませんが、12 チャネル ファイルの生成で問題が発生しています。
ExtAudioFile API を使用して、12 チャネルの AudioStreamBasicDescription と 12 チャネルの FileChannelLayout を持つオーディオ ファイルを作成できます。12 チャネルの ClientDataFormat の設定 (クライアント レイアウトを設定する前に行われますが、これも明らかに失敗します) に関しては、「fmt?」エラー コードが表示されます。
ClientDataFormat の AudioStreamBasicDescription は次のように生成されます。
サンプル レートは 176.4 kHz で、m_channels は正しく設定されています。これは 2、4、および 6 チャンネルのセットアップで適切に機能しているので、問題はないと思います。また、64 ビット浮動小数点数の代わりに 32 ビット符号付き整数を使用してみましたが、結果は同じです。
何が欠けているのかわかりません。Apple Lossless コーデックが 12 チャンネルのエンコーディングをサポートしていない可能性はありますか?
ios - ExtAudioFile API がハードウェアを使用してオーディオをデコードすることはありますか?
インターフェイスを使用してExtAudioFile
オーディオをデコードしていますが、ハードウェア支援のオーディオ デコーディングを使用するかどうかを知りたいです。
kExtAudioFileProperty_CodecManufacturer
プロパティのドキュメントには次のように書かれています。
iOS でこのプロパティを使用して、kAppleHardwareAudioCodecManufacturer または kAppleSoftwareAudioCodecManufacturer を指定して、ハードウェア エンコーダーまたはソフトウェア エンコーダーを選択します。
ExtAudioFile
これは、実際にデコード ハードウェアを利用できることを示しているようです。
Audio Format Services のドキュメントには、次のような記述があります。
ハードウェアベースのコーデックは、Audio Queue Services を使用して再生または録音する場合、または Audio Queue Services を使用する AV Foundation などのインターフェイスを使用する場合にのみ使用できます。特に、OpenAL で、または I/O オーディオ ユニットを使用している場合は、ハードウェア ベースのオーディオ コーデックを使用できません。
...完全に明確ではありません。実装に Audio Queue Services を使用する場合ExtAudioFile
、ハードウェアを利用できる可能性がありますが、実際にどのように実装されているかはわかりません。
ハードウェアが使用されているかどうかを実行時にテストしようとしましたが、これ自体が難しいことがわかりました。Audio Format Services リファレンスに記載されている 1 つの方法は、 を使用してプロパティAudioFormatGetProperty
をテストすることです。kAudioFormatProperty_HardwareCodecCapabilities
しかし、サンプル コードは機能せず、常に を返しkAudioFormatUnsupportedPropertyError
ます。(オンラインで検索した後、この問題を抱えている人からいくつかの質問を見つけましたが、それをうまく使用したという報告はありません。)
だから...ハードウェアデコーダが現在アクティブであるかどうかを確実にテストする方法を誰かが知っているかどうか疑問に思っています(その場合、それを使用しているかどうかを自分でテストできますExtAudioFile
)。あるいは、誰かがExtAudioFile
ハードウェアを使用しているかどうかについて決定的な知識を持っている場合 (Apple ドキュメントのあいまいな言及だけに基づいているわけではありません)。
ios - ExtAudioFile でオーディオ ファイルを読み取れない
ExtAudioFile でオーディオ ファイルを読み取り、IO ユニットで再生しようとしています。オーディオ ユニットを学習して 2 か月が経ちましたが、ある程度は理解できたと思います。しかし、私は自分の問題の解決策を見つけることができず、それが私を夢中にさせています。基本的には正常に読み取り、エラーはありませんが、無音を出力します (サンプルがバッファーから出力バッファーにコピーされないように)。
ここにコード全体をアップロードしました: https://gist.github.com/skiny-n/9050804
誰かがそれを試したり、経験したりして、文字通り私を悲惨な状況から解放してくれますか?
ヒントをありがとう、乾杯
ios - iOSで既存のMP3またはAACのビットレートを取得するには?
既存の MP3 ファイルと AAC ファイルのビットレートをユーザーに表示したいのですが、これらのファイルのビットレートを正しく抽出する方法がわかりません。
これまでのところ、のAudioConverterRef
ポインターを取得しようとしExtAudioFileRef
てから、コンバーターからビットレートを取得したかったのですが、問題は最初のステップで既に始まっています。プロパティを取得NULL
しkExtAudioFileProperty_AudioConverter
ます:
AudioStreamBasicDescription
同じからfileRef
正常に読み取ることができるので、fileRef
問題ありません。
圧縮オーディオファイルのビットレートを取得するには?