晚上好.我正在尝试用质量好的声音库写一个简单的midi播放器.面对播放midi文件的问题.问题是midi的所有曲目(鼓,鼓,贝斯,合成器等)都播放了,但它们只演奏一个乐器.我找到了OS X的解决方案,我需要iOS解决方案.我是否必须使用kAudioUnitSubType_Sampler为每个乐器audioUnit创建?
提示可以实时更改所选通道上的仪器吗?如何实施?对不起我的英语不好 ((
这是我的代码,它无法正常工作:
// Create a client
MIDIClientRef virtualMidi;
Check(MIDIClientCreate(CFSTR("Virtual Client"),
MyMIDINotifyProc,
NULL,
&virtualMidi));
// Create an endpoint
MIDIEndpointRef virtualEndpoint;
Check(MIDIDestinationCreate(virtualMidi, CFSTR("Virtual Destination"), MyMIDIReadProc, samplerUnit, &virtualEndpoint));
// Initialise the music sequence
NewMusicSequence(&midiSequence);
if (!midiFilePath) {
midiFilePath = [[NSBundle mainBundle]
pathForResource:@"carelesswhisper"
ofType:@"mid"];
}
NSLog(@"midiFilePath %@", midiFilePath);
// Create a new URL which points to the MIDI file
NSURL * midiFileURL = [NSURL fileURLWithPath:midiFilePath];
MidiParser *midiParser = [[MidiParser alloc] init];
NSData *data = [NSData dataWithContentsOfFile:midiFilePath];
[midiParser parseData:data];
NSString *midiInfo = …Run Code Online (Sandbox Code Playgroud)