2009-07-31 7 views
0

Je suis en train de coder en Objective-C pour l'iPhone et j'essaye de créer un tableau qui joue une série de sons. Par exemple, la première fois que j'appuie sur le bouton, je le veux jouer son « 0.wav », mais la deuxième fois que je veux jouer « 1.wav », puis « 2.wav », " 3.wav ", etc. Ensuite, quand j'ai joué un total de 14 sons (jusqu'à" 13.wav "), je veux que la boucle commence à jouer avec 0.wav. J'ai regardé autour de Google et la documentation de développement d'Apple pendant presque 4 jours sans beaucoup de chance. Donc, si quelqu'un pouvait m'aider à générer un code pour cela, ce serait grandement apprécié et si cela ne vous dérange pas, pourriez-vous essayer d'expliquer le code brièvement afin que je puisse apprendre ce que chaque partie fait.Comment faire pour qu'un bouton joue des sons dans un certain ordre en utilisant un tableau?

Merci, Joey


EDIT

D'accord, je suis devenu la partie Array vers le bas (merci à Thomas) mais aucun d'entre nous ne manqueront pas comment mettre en œuvre le soundID du tableau à l'action où je joue le son et comment jouer ce son. J'ai utilisé le format Thomas utilisé pour son tableau ci-dessous si cela vous aide avec votre réponse.

Merci, Joey

+0

Êtes-vous demander de l'aide avec la façon dont vous feriez un bouton d'accès d'un nouvel élément d'un tableau à chaque fois qu'il est pressé, ou comment vous prendriez un fichier .wav et le jouer? – smorgan

+0

Eh bien, j'essaie vraiment de demander comment implémenter comment accéder à un nouvel élément du tableau et ensuite jouer ce nouvel élément en une seule étape facile. – JoeyParis

Répondre

0

Tout d'abord, créez le tableau de vos différents sons et une variable pour tenir l'index courant:

NSArray *sounds = [[NSArray alloc] initWithObjects:@"0.wav", @"1.wav", nil]; // add all your files here 
NSUInteger currentSound = 0; 

Ensuite, lorsque vous manipulez votre bouton événement taraudée, allez à l'autre sonner, et le jouer. Si elle est à la fin de votre NSArray, retournez à l'index 0:

currentSound++; 
if (currentSound >= [sounds count]) { 
    currentSound = 0; 
} 

// play the sound. Just call your own method here 
[self playSoundWithFilename:[sounds objectAtIndex:currentSound]]; 
+0

Où devrais-je mettre chacun de ces codes. J'ai actuellement le premier dans "viewDidLoad" et le second dans mon action que j'appelle quand le bouton est pressé pour jouer le son. Ce qui est un vide. Devrait-il s'agir d'un IBAction? Et ai-je besoin de déclarer quelque chose dans mon fichier d'en-tête ou est-ce que tout est pré-fait dans les frameworks. Comment puis-je lire le fichier audio en utilisant le résultat obtenu à partir de la matrice? Je ne suis pas sûr comment utiliser la valeur actuelle du tableau en tant que soundID de fichier. – JoeyParis

+0

viewDidLoad est probablement bien pour la première partie. Assurez-vous de libérer NSArray dans dealloc. Votre action peut renvoyer void, je pense que vous avez besoin d'IBAction pour dire à Interface Builder que c'est une action. Je comprends que IBAction est équivalent à vide. Pas sûr de jouer le son, je n'ai aucune expérience avec ça. –

+0

Ok merci pour l'aide. Cela m'a vraiment beaucoup aidé, je vais demander autour de jouer le son. – JoeyParis

Questions connexes