Question

Im faire une application de test de piano, le clavier sonne maintenant jouer des notes que je l'ai enregistré en utilisant la bande de garage, mais j'ai quelques problèmes:

-Les notes sont 5 secondes (temps minimum de bande de garage), donc une note ne peut pas être répété, je dois attendre jusqu'à ce que le son note réelle d'environ 1 sec puis le silence pendant environ 4 secondes, également note parfois ne peut être joué comme prévu, Im en utilisant AVFoundation.framework ,,

  • a essayé avec AudioToolbox.framework, mais il donne des problèmes avec mon ipod touch 4.1 (ne fonctionne pas !!) mais dans le simulateur semble bien

  • J'ai aussi vérifié OpenAL et objectale, mais semble un peu trop cher pour jouer juste des notes ??

ici le code

 #import "pianoViewController.h"

 @implementation pianoViewController

 @synthesize myMusic;

 @synthesize myMusic2;

 @synthesize myMusic3;

 @synthesize myMusic4;

 @synthesize myMusic5;

 @synthesize myMusic6;

 @synthesize myMusic7;

 @synthesize myMusic8;

 @synthesize myMusic9;

 @synthesize myMusic10;

 @synthesize myMusic11;

 @synthesize myMusic12;




 -(IBAction)Play{

[myMusic play];

  }


 -(IBAction)Play2{

[myMusic2 play];

  } 
  .
  .
  .


  - (void)viewDidLoad {


NSString *pathToMusicFile = [[NSBundle mainBundle] pathForResource:@"c3" ofType:@"aif"];


myMusic = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile] error:NULL];


myMusic.delegate = self; 

myMusic.numberOfLoops = 0;

myMusic.volume = 1.0;


NSString *pathToMusicFile2 = [[NSBundle mainBundle] pathForResource:@"c#" ofType:@"aif"];



myMusic2 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile2] error:NULL];


myMusic2.delegate = self; 

myMusic2.numberOfLoops = 0;

myMusic2.volume = 1.0;


NSString *pathToMusicFile3 = [[NSBundle mainBundle] pathForResource:@"d" ofType:@"aif"];



myMusic3 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile3] error:NULL];


myMusic3.delegate = self; 

myMusic3.numberOfLoops = 0;

myMusic3.volume = 1.0;


//[super viewDidLoad];


NSString *pathToMusicFile4 = [[NSBundle mainBundle] pathForResource:@"d#" ofType:@"aif"];



myMusic4 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile4] error:NULL];


myMusic4.delegate = self; 

myMusic4.numberOfLoops = 0;

myMusic4.volume = 1.0;


//[super viewDidLoad];


  NSString *pathToMusicFile5 = [[NSBundle mainBundle] pathForResource:@"e" ofType:@"aif"];



myMusic5 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile5] error:NULL];


myMusic5.delegate = self; 

myMusic5.numberOfLoops = 0;

myMusic5.volume = 1.0;


NSString *pathToMusicFile6 = [[NSBundle mainBundle] pathForResource:@"f" ofType:@"aif"];



myMusic6 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile6] error:NULL];


myMusic6.delegate = self; 

myMusic6.numberOfLoops = 0;

myMusic6.volume = 1.0;


NSString *pathToMusicFile7 = [[NSBundle mainBundle] pathForResource:@"f#" ofType:@"aif"];



myMusic7 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile7] error:NULL];


myMusic7.delegate = self; 

myMusic7.numberOfLoops = 0;

myMusic7.volume = 1.0;


NSString *pathToMusicFile8 = [[NSBundle mainBundle] pathForResource:@"g" ofType:@"aif"];



myMusic8 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile8] error:NULL];


myMusic8.delegate = self; 

myMusic8.numberOfLoops = 0;

myMusic8.volume = 1.0;


NSString *pathToMusicFile9 = [[NSBundle mainBundle] pathForResource:@"g#" ofType:@"aif"];



myMusic9 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile9] error:NULL];


myMusic9.delegate = self; 

myMusic9.numberOfLoops = 0;

myMusic9.volume = 1.0;


NSString *pathToMusicFile10 = [[NSBundle mainBundle] pathForResource:@"a" ofType:@"aif"];



myMusic10 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile10] error:NULL];


myMusic10.delegate = self; 

myMusic10.numberOfLoops = 0;

myMusic10.volume = 1.0;


NSString *pathToMusicFile11 = [[NSBundle mainBundle] pathForResource:@"a#" ofType:@"aif"];



myMusic11 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile11] error:NULL];


myMusic11.delegate = self; 

myMusic11.numberOfLoops = 0;

myMusic11.volume = 1.0;


NSString *pathToMusicFile12 = [[NSBundle mainBundle] pathForResource:@"b" ofType:@"aif"];



myMusic12 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile12] error:NULL];


myMusic12.delegate = self; 

myMusic12.numberOfLoops = 0;

myMusic12.volume = 1.0;










[super viewDidLoad];

}






// Override to allow orientations other than the default portrait orientation.
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
 }


  - (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
 }

  - (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
 }


   - (void)dealloc {
[super dealloc];
 }

 @end

est-il un moyen pour que je puisse utiliser AVFoundation jouer plusieurs notes rapidement? (Presque comme chevauchement avec AudioToolbox) ou que proposez-vous?

merci!

Était-ce utile?

La solution

Au lieu de chaussures écornage dans une solution pour quelque chose qui ne devrait pas être un problème, je suggère au contraire que vous utilisez un logiciel d'édition audio qui ne dispose pas d'une restriction de longueur de piste minimum.

Un tel exemple, qui est compatible Mac et libre, est Audacity: http://audacity.sourceforge.net/

En outre, OpenAL est parfait pour jouer beaucoup de sons courts, ce qui pourrait se chevaucher. Je pense que vous pouvez avoir 32 jouer à la fois si vous le souhaitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top