6

ボタンを押したときに音を鳴らしたい。また、音は複数あります。Xcode 4.4.1 と Storyboard を使用しています。

.h ファイル内

{
    IBOutlet UIButton *playSound;
}
4

2 に答える 2

22

この型の例を書くと面白いと思ったので書きました。ボタンが押されたときに異なるランダム サウンドを再生する方法を示します。

-(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);  
}

説明:

  • プロジェクトに次の 4 つのサウンドを追加します: sound1.cafsound2.cafsound3.caf、およびsound4.caf

  • AudioToolbox フレームワークをプロジェクトにインポートします。そして .h に含めます#import <AudioToolbox/AudioToolbox.h>

  • ボタンを経由でbuttonPressedWithSoundに接続することを忘れないでくださいIBAction

于 2012-08-09T17:38:47.247 に答える
1

私はこの方法を見つけました、そしてそれは私のために働きます

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

*ノート

ClickSoundFile : サウンドファイル名 FileTypemp3 : ファイルタイプ mp3

于 2016-08-19T06:59:15.847 に答える