Чтобы не изобретать велосипед заново, я начал с использования C# Midi Toolkit в CodeProject, созданного с поддержкой .NET 2.0.
Проблема, с которой я столкнулся, заключается в том, что он отлично работает в редакторе Unity, но затем
не работает в автономной сборке Windows.
Вот базовый звуковой код подключения/воспроизведения:
Код: Выделить всё
// 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));
OutputDeviceException: указанный дескриптор устройства недействителен.
Я просмотрел исходный код и заметил, что библиотека использует
дескрипторы Win32 для winmm.dll, я подумал, что это может быть имеете какое-то отношение к этому, но не знаете, куда двигаться дальше.
Может ли кто-нибудь дать представление о том, как к этому подойти? Я, вероятно, рассмотрю альтернативы, созданные специально для Unity, но мне интересно узнать, почему что-то подобное вообще не работает.
Подробнее здесь: https://stackoverflow.com/questions/490 ... t-in-unity
Мобильная версия