ho ottenuto con successo iOS per svolgere un mid (midi) file con un campione soundfont utilizzando il seguente codice:Riproduzione di file midi con MusicPlayer & Music Sequence
-(void) playMusic:(NSString*) name
{
NSString *presetURLPath = [[NSBundle mainBundle] pathForResource:@"GortsMiniPianoJ1" ofType:@"SF2"];
NSURL * presetURL = [NSURL fileURLWithPath:presetURLPath];
[self loadFromDLSOrSoundFont: (NSURL *)presetURL withPatch: (int)3];
NSString *midiFilePath = [[NSBundle mainBundle] pathForResource:name ofType:@"mid"];
NSURL * midiFileURL = [NSURL fileURLWithPath:midiFilePath];
NewMusicPlayer(&musicPlayer);
if (NewMusicSequence(&musicSequence) != noErr)
{
[NSException raise:@"play" format:@"Can't create MusicSequence"];
}
if(MusicSequenceFileLoad(musicSequence, (CFURLRef)midiFileURL, 0, 0 != noErr))
{
[NSException raise:@"play" format:@"Can't load MusicSequence"];
}
MusicPlayerSetSequence(musicPlayer, musicSequence);
MusicSequenceSetAUGraph(musicSequence, _processingGraph);
MusicPlayerPreroll(musicPlayer);
MusicPlayerStart(musicPlayer);
}
Tuttavia, il problema viene quando ho poi prova a riprodurre un secondo file quando il primo è ancora in riproduzione.
Ho provato molte varianti. Innanzitutto, il codice sopra riprodurrà entrambe le tracce contemporaneamente. Oppure, ho provato:
DisposeMusicPlayer(musicPlayer);
DisposeMusicSequence(musicSequence);
Prima della NewMusicPlayer(&musicPlayer)
, ma questo produce una versione strana del brano con note solo sporadici in fase di riproduzione.
Mi piacerebbe semplicemente chiamare questo metodo e la traccia successiva da riprodurre.
ho seguito lo snippet di codice e il tutorial qui http://www.deluge.co/?q=comment/477#comment-477 ma senza uscita c'è. potresti per favore aiutarmi a suonare un mid file – makboney