1

この質問は数年前から私の頭の中にありましたが、実際にこれに対する答えを見つけることはできませんでした.

私がやりたいことは、MP3 ファイルの実際の波形/PCM を抽出して、サウンドカードを使用して再生できるようにすることです (もちろん)。

理想的には、いくつかの DSP エフェクトを実験していると思います。

私の最初のステップは LAME を調べることでしたが、プログラム内の MP3 デコードなどに関連するものは何も見つかりませんでした。

だから私はこのようなものをどこで見つけることができるか尋ねています。

どの言語を使用すればよいですか? 私はCを考えていましたが、もっと効率的に仕事をするプログラミング言語が世の中にあるかもしれません.

ありがとう!

ギヨーム。

4

6 に答える 6

5

質問は要約すると、何を達成しようとしているのか?

MP3をデコードしてサウンドカードで再生するという質問の説明から、メディアプレーヤーを作成しようとしているかのように聞こえます。

ただし、DSP エフェクトをいじることが目的の場合は、MP3 のデコードではなく、サウンドの処理に関する問題のように思えます。その場合は、おそらく既存のメディア プレーヤー ( Windows Media PlayerWinampなど) 用のプラグインを作成することを検討することが、目的を達成するための最も簡単な方法です。

率直に言って、ゼロから独自のデコーダーを作成することを学ぶことは、単なるプログラミングの問題ではなく、数学的な問題であるため、既存のライブラリを使用することが最善の方法です。オーディオを出力するためにオペレーティング システムや DirectSound などのライブラリと対話することは、どちらかといえば不必要な作業のように思えます。独自のメディア プレーヤーを作成することが目標でない限り、既存のプレーヤー用のプラグインに取り組むのがよいと思います。

あなたが本当に達成したいのがオーディオデータで遊ぶことである場合、おそらくMP3デコーダーを使用してMP3を非圧縮PCMにデコードし、選択した言語でそれを操作することで、サウンドでエフェクトを処理するという目標を達成できます.

言語の選択は、MP3 デコード ライブラリを直接操作するか、または選択したほぼすべての言語を使用できる生のオーディオ入力のみを使用できるかによって異なります。

しばらく前に同様の質問がありました。プログラムによるオーディオの開始 で、増幅、再生速度の変更、FFT の操作など、オーディオを操作するいくつかの基本的な方法についての回答を投稿しました。

于 2009-02-27T05:22:53.157 に答える
2

libmpg123でうまくいくはずです。

于 2009-02-27T04:04:39.600 に答える
1

この目的ではなく、Windows Media SDK を使用してきましたが、オーディオ ストリームをインターセプトしたり、MP4 を非圧縮 WAV に変換したりできるフックがあることは確かです。C++を使用しました。

于 2009-02-27T04:05:59.813 に答える
1

ロット:

http://www.mp3-tech.org/programmer/decoding.html

あなたの毒を選んでください...

また、LAME は MP3 をデコードします (--decode オプションを確認してください)。そのため、そのソースに興味深いものが見つかるかもしれません。

-アダム

于 2009-02-27T04:08:25.470 に答える
1

それは、プログラミングしているプラ​​ットフォームと、コードで何をしたいかによって異なります。Windows を使用している場合は、windows media format sdkまたはDirectShowを確認する必要があります。どちらも、mp3 ファイルを生の波形にデコードする機能を備えている必要があります。Mac では、Quicktime にこれと同じ機能があると思います。他の人は、Linux/オープン ソース コードのソースを既に提案しています。

于 2009-02-27T04:45:58.283 に答える
0

どちらもMP3をWAVなどに変換し、波形をいじることができるので、CubaseとWavelabを見ることをお勧めします

于 2011-01-23T17:51:12.853 に答える