6 Stimmen

Wie kann ich einer Schaltfläche in iOS einen Ton hinzufügen?

Ich möchte gerne einen Ton abspielen lassen, wenn eine Taste gedrückt wird. Außerdem gibt es mehr als einen Sound. Ich bin mit Xcode 4.4.1 und Storyboard.

In der Datei .h

{
    IBOutlet UIButton *playSound;
}

22voto

Justin Boo Punkte 10084

Ich dachte, es würde Spaß machen, ein solches Beispiel zu schreiben, also habe ich es geschrieben. Es zeigt, wie man verschiedene zufällige Töne abspielt, wenn eine Taste gedrückt wird:

-(IBAction)buttonPressedWithSound:(id)sender {

    int randomSoundNumber = arc4random() % 4; //random number from 0 to 3

    NSLog(@"random sound number = %i", randomSoundNumber);

    NSString *effectTitle;

    switch (randomSoundNumber) {
        case 0:
            effectTitle = @"sound1";
            break;
        case 1:
            effectTitle = @"sound2";
            break;
        case 2:
            effectTitle = @"sound3";
            break;
        case 3:
            effectTitle = @"sound4";
            break;

        default:
            break;
    }

    SystemSoundID soundID;

    NSString *soundPath = [[NSBundle mainBundle] pathForResource:effectTitle ofType:@"caf"];
    NSURL *soundUrl = [NSURL fileURLWithPath:soundPath];

    AudioServicesCreateSystemSoundID ((CFURLRef)soundUrl, &soundID);
    AudioServicesPlaySystemSound(soundID);  
}

Erläuterung:

  • Fügen Sie vier Sounds in Ihr Projekt ein: sound1.caf , sound2.caf , sound3.caf y sound4.caf .

  • Importieren Sie das AudioToolbox-Framework in Ihr Projekt. Und in .h einschließen #import <AudioToolbox/AudioToolbox.h> .

  • Vergessen Sie nicht, Ihre Schaltfläche mit buttonPressedWithSound über IBAction .

1voto

Rahul K Rajan Punkte 756

Ich habe diesen Weg gefunden, und er funktioniert für mich

SystemSoundID soundID;
NSString *soundPath = [[NSBundle mainBundle] pathForResource:ClickSoundFile ofType:FileTypemp3];
NSURL *soundUrl = [NSURL fileURLWithPath:soundPath];
AudioServicesCreateSystemSoundID ((__bridge CFURLRef)soundUrl, &soundID);
AudioServicesPlaySystemSound(soundID);

*Anmerkung

ClickSoundFile : Name der Tondatei FileTypemp3 : Dateityp mp3

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X