2017-09-18 15 views
1

アプリケーション内のさまざまなMIDIコントローラデバイスにアクセスするためのサポートが追加されています。 midiInOpenを使用する私たち自身の試行から、midiInOpenを使用して1つのアプリケーションだけがMIDI入力デバイスにアクセスできるようです。 MIDIデバイスを開こうとする2番目のアプリケーションがエラーMMSYSERR_NOMEMで失敗します。複数のアプリケーションから1つのMIDI入力ストリームを同時に開く

しかし私はアプリケーション(midiInOpenを使用)と同時にMIDI入力ストリームにアクセスする商用アプリケーション(サードパーティ)の例を持っています。これは、MIDIストリームにアクセスする別の方法があることを示唆しています。

私はAPIコールを見るためにAPIスニファを使いましたが、このアプリケーションではmidiInOpenを使用していません。 midiInMessagemidiOutMessageを使用し、APIドキュメントからは、これらはドライバと直接通信しているようです。

MIDIの新しいサポートがWindows 10で提供されていることがドキュメントからわかります。私はまだmidiInOpenを使用するアプリと一緒に動作する方法を実験していませんが、可能であればWindows 7以上で動作するソリューションを見つける必要があります。

私はサードパーティのアプリケーション開発者に連絡して助けてくれるかどうか確認しました。現在。私たちのアプリは彼らのアプリと一緒に機能しますが、midiInOpenを使ってMIDIデータにアクセスする他のアプリもあり、私たちのアプリはそれらのアプリと共存できません。 midiInOpenを呼び出す最初のアプリはMIDIストリームを取得します。 2番目の呼び出しは失敗します。

すべてのテストはWindows 7で行われています.7以上をサポートする必要があります。

私たちのMac版のアプリケーションはこの点で問題なく動作します。

答えて

0

一部のデバイスには、マルチクライアントをサポートしている非標準のWinMMドライバがあります。しかし、これは明らかにここでは当てはまりません。

現在、MicrosoftはWindowsの3つのMIDI APIが用意されています

明らかに、その3 rd -partyアプリケーションはDirectMusicを使用します。

関連する問題