3

再生中のすべてのサウンド (Windows メディア プレーヤーまたは別のプレーヤー) を一時停止して、アプリケーションで特定のサウンドを再生してから、前に一時停止したサウンドの再生に戻る方法。

つまり、Windows Media Player のようなサウンド プレーヤーでサウンドを再生したい場合、私のプログラムはこのサウンドを一時停止して特定のサウンドを再生し、特定のサウンドを再生し終わった後、サウンドを一時停止しました。誰かが私を助けることができますか?

私のデルファイバージョンは2010年です。ありがとう。

4

2 に答える 2

2

対象の Windows のバージョンが指定されていません。アプリケーションごとにオーディオを制御したい場合は、大きな違いがあります。

Windows 7 では、アプリケーション (まあ.. ストリーム) ごとに音量を制御できます。

ASIO を使用するアプリケーションをこのように制御することはできませんが、Windows Media Player だけを気にするのであれば問題にはなりません。 ミキサー

Core Audio API を介して、ストリームの音量 (またはミュート) を制御できます。IAudioEndpointVolumeまたはISimpleAudioVolumeインターフェイス。

ただし、ミキサーのボリュームをいじることはお勧めしません。

Windows には、必要な処理を実行するメカニズムが組み込まれています。duckingこれはまたはと呼ばれstream attenuation、「コミュニケーション」ストリームの開始時にすべての非コミュニケーション オーディオ ストリームの音量を下げる/ミュートするためのものです。

Windows マルチメディア コントロール パネル (Mmsys.cpl) では、[通信] タブで既定の動作を構成できます。

設定

デフォルトの通信デバイスを見つけて、それを介してオーディオを再生する必要があります。

ここのユニットは、それを見つけるのに役立ちます: http://code.google.com/p/mfpack-media-foundation/source/browse/trunk/MFPACK/CoreAudio/MMDeviceAPI/MMDeviceApi.pas

ここから先は、オーディオを再生するときに自動的にダッキングが発生するかどうかは 100% ではありません。私は自分で試したことはありませんが、これが正しい方向に導くことを願っています。結果を予約する場合はお知らせください。

ps: もし私があなただったら、mfpackをもう少し詳しく見てみたいと思います。なぜなら、この種のものには便利なライブラリのようだからです。そのプロジェクトには 3 人のコミッター (maxcmx、factoryx.code、および Peter larson) がいることがわかります。彼らはあなたの目標を正しい方法で達成する方法を教えてくれると確信しています.

于 2013-01-04T08:14:39.050 に答える
0

Google で検索すると、必要なことを正確に実行する Windows XP アプリケーションが見つかりました。これは、Windows XP のIndieVolumeアプリケーションごとのボリューム コントロール (ここにリンク) と呼ばれます。私はそれをテストし、それがどのように機能するかを確認します.最悪の場合、私は回避策を講じなければなりません。いいえ、しかし誰かがより良いアイデアを持っているなら、私はいつでも喜んで耳を傾け、むしろ読み続けます...

于 2013-01-04T12:53:05.123 に答える