0

OSX に移植したい C# で書かれた mp3 再生アプリケーションがあります。

DirectShow を使用して mp3 を再生するため、オーディオ再生部分を再コーディングする必要があることに気付きました。AUGraph を使用した Apple のプレイファイルのサンプルを見つけました。

http://www.mono-project.com/MonoMacの Binding Cocoa セクションでは、「はるかに単純な AudioToolBox API」について言及しています。

C# から AudioToolBox を使用するため、またはできれば C# から AUGraph を使用するためのサンプル コードを教えてください。

コードを monomac に移植するのが最善の方法ですか、それとも思い切って Objective C で再コーディングする方がよいでしょうか。

4

3 に答える 3

1

以下は、MonoMac と同じ API を使用して AudioUnit を使用するサンプルです。ただし、これらのサンプルは MonoTouch を使用する iPhone を対象としています。

https://github.com/migueldeicaza/MonoTouch.AudioUnit

低レベルの処理やエフェクトの適用を行わずに MP3 ファイルを再生することだけが必要な場合は、代わりに MonoMac.AppKit.NSSound API を使用できます。

于 2010-11-07T02:13:18.697 に答える
0

リンクしたページには、AudioToolbox (つまり CoreAudio) が完全にバインドされていると書かれています。サンプルは知りませんが、C コードを移植するのは難しくありません。

別の方法として、mono-osx メーリング リストにアクセスして QTKit のバインドを要求するか、このバインドを自分で行うこともできます。MonoMac バインディング ジェネレーターを使用すると、Objective-C API のバインドが非常に簡単になると聞きました。

自分でバインディングを行う必要がある場合でも、既存の C# コードと知識を使用する方がはるかに迅速かつ簡単になります。

于 2010-10-27T01:20:46.220 に答える
-1

AUGraph は Core Audio の一部です。これは、オーディオ ユニットのグラフを作成するために使用され、オーディオの再生に使用できます。Core Audio は、C API を持つ低レベルのフレームワークです。
Mono から QTKit (QuickTime のココア ラッパー) を使用できるかもしれません。

私の意見では、プラットフォームの「ネイティブ」テクノロジーを使用することが常に最善のアプローチです。(これは、Mac OS X 用の Objective-C と Cocoa になります)。Apple には、 QTKitを使用してメディア プレーヤーを作成する方法を示す素晴らしいサンプルがあります。 doc/uid/TP40008155-CH1-SW1

于 2010-10-07T09:10:34.317 に答える