1

以前に似たような質問をしたことはわかっていますが、やりたいことの計画がある程度進んでおり、パラメーターが少し異なっています。

基本的に、Mac と Windows の両方でオーディオをデコードして出力するための最適なオプションを探しています。2 つのプラットフォーム間で必要なコードに違いがないことが理想的です。ファイルパスまたはHTTP URLを渡して、一時停止、シークなどの機能を備えたオーディオを再生できるようにしたいだけです.

OSに依存せずにすぐに MP3 と AAC をデコードできる必要があります (OS に完全に依存する Qt の Phonon など)。それを超える他のコーデックは、非常に素晴らしいボーナスです。

私は libavcodec のようなものを見てきましたが、これはおそらく何でもデコードできると思われますが、それを機能させる方法を理解することができませんでした。これまでのところ、私が見たライブラリは、Mac と Linux または Windows と Linux にも対応しているようですが、MacWindows には対応していないようです。

オープンソースである必要はありませんが、商用製品で使用できる必要があります。あまりにも高価で使いやすいものでない限り、何かをライセンスすることは問題ありません。

最後に、C/C++ が優先されますが、C#/Mono で動作するものがあれば、それも問題ありません。

これに役立つ何かについての提案はありますか?

4

2 に答える 2

2

「Crosstalk」という名前の Mac および Windows 用の C++ オーディオ ライブラリを作成しました。

Crosstalk は、オーディオ システムをリアルタイムで作成およびルーティングできる C++ オーディオ エンジンです。エンジンはすべてのオーディオ ルーティングを処理し、システム コンポーネント (たとえば、「オーディオ デバイス」および「ファイル レコーダー」に接続された「ローパス フィルター」に接続された「MP3 デコーダー」コンポーネント) を作成するためのシンプルなプラットフォームを提供します。

使い方はとても簡単です。mp3 ファイルを再生する方法の例を次に示します (これらのコンポーネントはエンジンに付属しています)。

XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;

long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);

system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);

mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();

Crosstalk には、サンプル Xcode および Visual Studio プロジェクトが含まれています。

Crosstalk をダウンロードして、API ドキュメントとライセンスの詳細を確認できます: http://www.adaptaudio.com/Crosstalk

編集 (01-12-2012):

Crosstalk は、「 DSPatch 」と呼ばれるオープンソース プロジェクトに置き換えられました。DSPatch は基本的に、クロストークの背後にあるルーティング エンジンのアップグレード バージョンであり、オーディオ処理だけに制限されなくなりました。DSPatch を使用すると、想像できるほぼすべてのタイプのプロセス チェーンを作成してルーティングでき、個人および独自の使用は無料です :)

于 2012-05-11T18:34:03.360 に答える
0

MP3 と AAC をすぐにデコード

これを簡単に行うオーディオライブラリを私は知りません。問題は、MP3 のデコードに関するライセンスの問題です。

この投稿でいくつかのオプションについて説明します。それらはWindows/Mac OS Xに適していますが、C# バインディングがあるかどうかはわかりません。

自分でバインディングを作成する場合は、libaudiodecoderに興味があるかもしれません:

C++ クロス プラットフォームの MP3/AAC/WMA/WAV デコーダー。

PortAudioを介して Windows/Mac で曲を再生する方法を示すが付属しています。

于 2012-04-24T20:35:18.323 に答える