問題タブ [mcisendstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1056 参照

c# - mciSendString を使用して Wave ファイルを作成できない

Skype 通話をキャプチャして、wave 拡張機能を使用して PC に保存しようとしていますが、試行するたびにmciSendStringサウンド ファイルの作成に失敗します。

これが私のコードです

パスは、ファイルを保存する必要がある場所です。

私のコードにはどのような間違いがありますか?

しかし、そのmciSendStringようにパスとファイル名をハードコーディングするとresult = mciSendString("save recsound d://test.wav", "", 0, 0);、ファイルが作成されましたが、そのウェーブファイルを再生したときにスカイプ通話が記録されませんでした。

パス指定のどこが間違っていますか?

2 つ目は、wave ファイルの生成時に音声が録音されていないことです。なんで?

0 投票する
1 に答える
451 参照

c - mciSendString の使用: サウンドのステータスを返すにはどうすればよいですか?

サウンドファイルを再生する簡単なプログラムを書いています。現在、mciSendString を使用してサウンドを再生しています。

私の問題は、ファイルのステータス モード (再生中、一時停止中など) を返す必要があり、「ステータス」コマンドでそれを返す方法がわからないことです。

どうすればこのようなことができますか?

0 投票する
1 に答える
716 参照

c++ - mciSendString でボリュームの代わりに変数を使用するにはどうすればよいですか? C++

だから私は C++ を使用して基本的な 2D 格闘ゲームを作っています。サウンド/オーディオ効果には、mciSendString()を使用しています

この上記のコードは正常に動作します。サウンドの音量を 500 に設定します。ただし、ボリューム値をハードコーディングしたくありません。ボリュームの整数値を小さくするだけで、同じ行を何度もコピーして貼り付ける必要なく、徐々に小さくしていきたいです。

私はこのようなことをしたいです。ハードコーディングされた 500 を使用する代わりに、任意の整数値を含む変数を使用できます。ただし、実行するとエラーは発生せず、オーディオは通常のように 500 ではなく 1000 で再生され続けます。

これを修正するにはどうすればよいですか?

0 投票する
1 に答える
997 参照

c# - winmm.dll mciSendString で可能な最低オーディオ設定?

C# と winmm.dll を使用して、この記録を可能な限り低い設定に設定しようとしています。以下のように設定しましたが、違いがわかりません。私が何かを見逃しているかどうか誰かが知っていますか?

可能な限り低いオーディオ設定を取得しようとしています。トランシーバーから聞こえるようなものです。

サンプル レートに加えた変更が反映されていないようです。

ありがとう、

0 投票する
1 に答える
759 参照

c++ - mciSendString は、スレッドから再生されたサウンドを一時停止しません

最近、私はすでにこの質問に似た解決策を求めました:

「待機」オプションを使用して mcisendstring で再生している mp3 ファイルを一時停止/停止する方法はありますか?

トラックが実行されている現在の秒に応じてスライダーが移動し、現在のトラックが再生された後に次のトラックに移動する機能を使用しながら、人々が継続的にサウンドを再生できるようにする機能をオーディオプレーヤーに実装したいと考えています。以上

(リンクで読むことができるように)それをやろうとした後

トラックが終了するまで一時停止または停止できないという問題が原因で失敗しました。現在、別の方法で実装しようとしています。現在、トラックの再生を開始すると、カウンターを開始する別のスレッドも開始します。カウンターはトラックの長さを秒単位で取得し、時間をカウントダウンしています。また、カウンターを一時停止/再開するためのミューテックスも提供しています。MusicCycle が単純に制御されずにループするのを止めるために、スレッドに参加し、その終了を待っています。

このメソッド全体もスレッドで作成されることに注意してください。

MusicCycle 関数によって開始されたスレッドは次のようになります。

また、対応する mciSendString 関数も呼び出す Pause/Resume メソッドを使用して、ここでミューテックスをロック/ロック解除する別の機能を追加しました。

ここで一時停止を呼び出すと、mciSendString はトラックを一時停止し、カウンターをロックして、カウントダウンを続けないようにします。

ただし、問題は、まだ機能しないことです。mciSendString で待機オプションを使用せずに解決策を考えようと努力したにもかかわらず、一時停止は音楽の再生にまったく影響しません。

何かアドバイス?

編集:これは実際にスレッドが原因で発生していることがわかりました。私はかなりの時間 C# を使用してきましたが、Invokes を使用してスレッドの問題を回避できます。もしかしたら、ここでも可能ですか?

EDIT2:少し読んだところ、PostMessage WinAPI呼び出しを介して別のスレッドのメッセージキューにメソッドを投稿するオプションがあるようです。これは可能性がありますか?はいの場合、誰かが良い例を提供できますか? 少し読んだけど、いまいちよくわからない

C++にもこのようなものはありますか?