MIDI-Ausgabe in UnityC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 MIDI-Ausgabe in Unity

Post by Anonymous »

Ich versuche, einfache Software zu erstellen, um eine Verbindung zu einem MIDI-Ausgabegerät unter Windows in Unity herzustellen und MIDI-Daten zu senden.

Um das Rad nicht neu erfinden zu müssen, habe ich mit der Verwendung des C# Midi Toolkits auf CodeProject begonnen, das mit Unterstützung für .NET 2.0 erstellt wurde.

Das Problem, das ich habe, ist, dass es im Unity-Editor einwandfrei funktioniert, dann aber
fehlschlägt im eigenständigen Windows-Build.

Hier ist der grundlegende Verbindungs-/Sound-Wiedergabecode:

Code: Select all

    // Log devices
int deviceCount = OutputDevice.DeviceCount;
for (int i = 0; i < deviceCount; i++)
{
Debug.Log(string.Format("Detected MIDI Device with ID {0}:{1}", i, OutputDevice.GetDeviceCapabilities(i).name));
}
deviceID = 1;
Debug.Log(string.Format("Connected to {0}", deviceID));
// Connect to device
device = new OutputDevice(deviceID);
// Play Middle C
device.Send(new ChannelMessage(ChannelCommand.NoteOn, 0, note, 127));
Und im eigenständigen Build erhalte ich die folgende Ausnahme:


OutputDeviceException: Das angegebene Gerätehandle ist ungültig.


Ich habe die Quelle durchgesehen und festgestellt, dass die Bibliothek
Win32-Handles für winmm.dll verwendet. Ich dachte, das könnte etwas damit zu tun haben damit, aber nicht sicher, wohin ich von hier aus gehen soll.

Kann jemand einen Einblick geben, wie man das angeht? Ich werde mir wahrscheinlich Alternativen ansehen, die speziell für Unity entwickelt wurden, aber ich bin daran interessiert zu erfahren, warum so etwas überhaupt nicht funktionieren würde.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post