Kann Silverlight mit einem MIDI-Instrument kommunizieren, das an den Computer angeschlossen ist, auf dem die Silverlight-Anwendung ausgeführt wird? In- oder Out-Browser.Kann Silverlight mit einem MIDI-Instrument kommunizieren?
Antwort
Es scheint, dass dies in Silverlight nicht möglich ist. Um mit einem MIDI-Gerät zu kommunizieren, müssten Sie Methoden in winmm.dll
PInvoke Methoden, und dies (scheinbar) kann nicht in Silverlight getan werden. Siehe:
http://forums.silverlight.net/forums/t/123673.aspx
Diese leicht in einer WPF oder WinForms-Anwendung getan werden könnte. Es könnte auch in einem Browser mit XBAP durchgeführt werden, obwohl Sie erhöhte Berechtigungen benötigen, um auf die API winmm
zuzugreifen, für die ein Zertifikat erforderlich wäre. Sie können ActiveX-Steuerelemente auch weiterhin mit .Net erstellen, aber ich denke, Sie benötigen weiterhin ein Zertifikat, um die richtigen Berechtigungen zu erhalten (obwohl es möglicherweise nur mit einem unheimlichen Sicherheitsbestätigungsdialog funktioniert).
Es ist nicht möglich, .NET-Code direkt in Silverlight zu verwenden, da Silverlight einen anderen Kern hat.
Alle .NET-Klassen, die in Silverlight referenziert werden sollen, müssen für Silverlight neu kompiliert werden.
Es ist auch nicht möglich, direkt auf die zugrunde liegende Hardware zuzugreifen. Daher befürchte ich, dass Sie einen voll vertrauenswürdigen XBAP haben (Sie müssen Ihre App signieren und der Benutzer wird ein Popup mit der Bitte um Erlaubnis erhalten). XBAP bietet Ihnen alle .NET-Funktionen während der Ausführung im Browser. XBAP läuft auf Firefox/Internet Explorer auf jedem xp-Rechner mit installiertem .net 3.0.
Hoffe, das hilft.
Silverlight 3 verfügt über eine erweiterbare Multimedia-Pipeline für Audio und Video. Sie können prozedural Ihr eigenes Audio erstellen und es abspielen. Um zu implementieren, was Sie wollen, müssten Sie Ihren eigenen MIDI-Synthesizer schreiben.
Ich möchte kein Midi spielen, ich möchte überhaupt keinen Ton ausgeben, ich möchte Midi von einem Midi-Instrument lesen. – Pablo