-2

私は小さな音楽プログラムを書いていて、mp3 を再生しようとしています。今、私はかなり醜いものを持っていますが、うまくいきます:

std::string command("cd \"C:\\Program Files (x86)\\Windows Media Player\" && wmplayer /play \"D:\\music\\A Perfect Circle\\eMOTIVe\\a.mp3");

system(command.c_str());

これを行うためのより良い、またはより信頼できる方法はありますか? また、マスターシステムの音量を調整するにはどうすればよいですか?

4

2 に答える 2

1

WindowsにMP3コーデックがインストールされている場合は、Win32APIPlaySound()関数またはVCLTMediaPlayerコンポーネントを使用してファイルを再生できる場合があります。

マスターボリュームを設定するには、Win32APIwaveOutSetVolume()関数を使用します。

于 2012-04-13T00:31:26.907 に答える
1

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

Crosstalk は、オーディオ システムの作成とルーティングを可能にするリアルタイム C++ オーディオ エンジンです。

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 ドキュメントとライセンスの詳細を確認できます

編集:

ボリュームの設定に関しては、「XtGain」と呼ばれるクロストークに含まれるコンポーネントがあり、mp3 デコーダー出力とオーディオ デバイス入力の間に直列に配線できます。これにより、スピーカーに到達する前にオーディオ ストリームの音量を設定できます。

編集 (01-12-2012):

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

于 2012-06-07T04:47:22.033 に答える