問題タブ [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.
c# - C# ISynchronizeInvoke 質問
完全な初心者のように聞こえるかもしれませんが、System.Timers.Timer に ISynchronizeInvoke を実装するにはどうすればよいですか?
mciSendString を呼び出すクラス (UI なし) があります。現在のステータスをポーリングするタイマーがあります。クラスからの呼び出しはすべて機能しますが、タイマー経過イベントからの呼び出しは機能しません。別のスレッドにあることを追跡しましたが、それ以上のことはありません。クラスと同じスレッドでデリゲートを呼び出す必要があると思いますが、まだ成功していません。
コードサンプル:
明確にするために、SendCommand (それが何であれ、Play、Stop など) から呼び出すと、それは機能し、Poll() の結果は私が期待するものです。タイマーが起動すると、結果 (res) は 263 ですMCIERR_INVALID_DEVICE_NAME
。失敗した呼び出しのスレッド ID は、成功したものとは異なるため、ISynchronizeInvoke を使用する必要があると考えました。
audio - mciSendString から返された奇妙なエラー - 誰でも助けてくれますか?
数か月前、作業中の MFC アプリにオーディオ録音を追加しました。これは非常に簡単であることが判明し、1、2 時間後にはコードが私の PC と 2 台の顧客のテスト マシン (1 つは XP を実行し、もう 1 つは Vista を実行) で動作するようになりました。しかし最近、テスト マシンの 1 つがアップグレードされ、今では記録機能が動作しません。
記録を開始するための基本的なコードは..
これはうまくいくようです。記録を停止するには、次のコードを実行します..
「save mysound C:\filename.wav」命令を送信すると、以下のエラーが発生します。返されるエラーは..
しかし、送信しているものにエラーは見られず、そのエラーは意味がありません。プログラムが PC がサポートしていないフォーマットを使用して記録しようとしているためにエラーが発生した可能性はありますか?
御時間ありがとうございます
イアン
c# - mciSendString をディレクトリ パスに保存できません
VS C# 2008 SP1
オーディオを録音および再生する小さなアプリケーションを作成しました。ただし、私のアプリケーションでは、wave ファイルをユーザーのコンピューターのアプリケーション データ ディレクトリに保存する必要があります。
mciSendString は C スタイルの文字列をパラメーターとして受け取り、8.3 形式である必要があります。しかし、私の問題は、それを保存できないことです。そして奇妙なのは、そうするときもあれば、そうでないときもあるということです。ただし、ほとんどの場合は失敗します。ただし、Cドライブに直接保存すると、初めてすべてが機能します。以下にコーディングした3つの異なる方法を使用しました。
失敗したときに表示されるエラー番号は 286 です。
ご提案いただきありがとうございます。
c# - mciSendString:スペースを含むファイル
mciSendString(winmm.dll)を使用して、スペースを含むファイル(F:\ MUSIC \(01)[VA] 01.StimAxel-Restart(DJ X-VenomRemix).mp3など)を読み取ろうとすると、エラーが発生します。コード
263。mciSendStringは、スペースを含むファイルを処理できません。この問題を回避する方法は?
Pcommand = "status \"" + path + "\" length";
int ret = (int)mciSendString(Pcommand, sBuffer, sBuffer.Capacity, 0);
winapi - mciSendStringAPIで使用するサウンドカードを指定する方法
古いVB6アプリを更新しています。昔は、オーディオを録音および再生できるように、mciSendStringコマンドのラッパーをコーディングしていました。当時、コンピュータには通常1枚のオーディオカードがありました。
現在、多くの顧客は複数のサウンドカードを持っています(通常は1つとUSBヘッドセットが組み込まれています)。
mciSendStringで使用するサウンドカードを指定するAPIが見つからないようです。誰かが私を正しい方向に向けることができますか?
vb.net - mciSendString を使用してビデオのサイズを変更する方法
以下は、ビデオを再生するために使用するコードです。ビデオはパネルで再生されますが、ビデオを開始すると、ビデオの一部しか表示されません。パネル内にビデオを収めるにはどうすればよいですか? また、アスペクト比を維持できるように、ビデオのデフォルト サイズ (高さと幅) を取得するにはどうすればよいですか。
vb.net - ビデオの上に他のコントロールを配置する方法は?
ビデオを再生するために mciSendString を使用していますが、ビデオの上にラベルやボタンなどのコントロールを配置できません。ビデオの上に別のコントロールを配置するにはどうすればよいですか?
以下はコードです:
パブリック クラス Form1
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String、ByVal lpstrReturnString As String、ByVal uReturnLength As Integer、ByVal hwndCallback As Integer) As Integer
文字列としての薄暗いファイル名
Dim retVal As Integer
前: (ボタン 1 が表示されます)
後 : (ボタン 1 が表示されなくなります)
vb.net - MCI デバイスを使用して mp4 ビデオを再生する方法
mciSendString コマンドを使用すると、avi、mpeg、mp3 などを再生できますが、mp4 を再生できません。このWeb サイトでは、正しいコーデックがあれば、どのビデオでも再生できると書かれています。他のメディア プレーヤー (vlc プレーヤーなど) を使用して mp4 を再生できます。どうすれば mp4 ビデオを再生できますか、または MCI デバイスに必要なドライバーの種類を自動検出させてビデオを再生させるにはどうすればよいですか?
vb.net - MCI デバイスが正しくないメディアの長さを示している
MCI デバイスは、一部の特定のメディアに対して正しくないメディア長を表示することがあります。私はGoogleでたくさん検索しましたが、見つけることができる唯一の解決策はDelphiで書かれています(Delphi Solution)DelphiからC#またはVBへのコンバーターが見つかりませんでした。この問題の回避策はありますか? メディアの長さを正しくしたいだけです。
.net - .net mcisendstring - フル パスの代わりにリソースを使用する
さて、mciSendString を使用して SOUND クラスを作成しました。私が作成している RPG スタイルのゲームの音楽やその他のサウンド ファイルを再生するために使用しています。それは機能し、うまく機能します...しかし。私の問題は、それが機能するためにサウンドファイルの完全なパスが必要なことです (これが正しいかどうかはわかりません)。
以下は、mcisendstring のクェークの一部です。
- mcisendstring スペースを嫌います。スペースはクラッシュの原因になります (ファイルの読み込みに失敗します) - 引用符を追加
- パスにドットがあると、読み込みに失敗する可能性があります (拡張子にはドットのみを使用する必要があります)
- パスが非常に長いと読み込みに失敗します (許可される最大文字数は 255 です)
- 相対パスは読み込みに失敗します... (chicken.mp3 のようなものは使用できません... C:\chicken.mp3 を使用する必要があります)
- repeat = true の場合、.wav ファイルはロードに失敗します。
リソースにファイルを追加して、リソースへのパスを設定しようとしましたが、次のように表示されましたValue of type '1-dimensional array of Byte' cannot be converted to 'String'
。
どんな助けでも大歓迎です:)
これが私のコードです:
クラス終了
必要なもの:
- どうにかして .mp3 ファイルをパスに使用できるリソースとして取得する必要があります。または、これらのファイルをルート ドライブまたはその他の完全なコンピューター パスに配置する代わりに、他の手段が必要です。
必要なものの例
変化する
に
サウンドの再生方法:
(別のテストフォームで)
PS プロジェクトで XNA Graphics を使用しており、NuGet の BizArk Core も使用しています。したがって、これらのいずれかを使用できる場合は、これらのいずれかを使用して必要なことを行う方法を教えてください. 助けてくれてありがとう。