如何在 iOS 中为按钮添加声音?

Posted

技术标签:

【中文标题】如何在 iOS 中为按钮添加声音?【英文标题】:How can I add sound to a button in iOS? 【发布时间】:2012-08-09 16:41:18 【问题描述】:

我想在按下按钮时播放声音。此外,还有不止一种声音。我正在使用 Xcode 4.4.1 和 Storyboard。

在.h文件中


    IBOutlet UIButton *playSound;

【问题讨论】:

请展示你目前拥有的东西;不太可能有人会为您编写项目。 我正在修改您问题的标题以从中删除 Xcode。 Xcode 仅仅是开发者环境。你真正关心的是你想在 ios 下做到这一点。 其实重要的是 Cocoa-Touch,因为它是他将在 iOS 中使用的 API。 :) IBOutlet UIButton *playSound; 在.h 文件中 【参考方案1】:

我觉得写这个类型的例子会很有趣,所以我写了它。它演示了如何在按下按钮时播放不同的随机声音:

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

说明:

在您的项目中添加四种声音:sound1.cafsound2.cafsound3.cafsound4 .caf.

将 AudioToolbox 框架导入您的项目。并包含在 .h 中#import <AudioToolbox/AudioToolbox.h>

不要忘记通过IBAction 将您的按钮连接到buttonPressedWithSound

【讨论】:

@KyleGreenlaw 你得到这个是因为你没有在项目中包含 AudioToolbox 框架(看看底部的解释)。 我可以使用 mp3 文件而不是 caf 文件吗? 当然,只需将类型更改为 mp3,如下所示:NSString *soundPath = [[NSBundle mainBundle] pathForResource:effectTitle ofType:@"mp3"]; @KyleGreenlaw 为了更清晰,我为您创建了项目,所以请看一下www8.zippyshare.com/v/70589015/file.html 能否提供音效链接?【参考方案2】:

我找到了这种方法,它对我有用

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

【讨论】:

以上是关于如何在 iOS 中为按钮添加声音?的主要内容,如果未能解决你的问题,请参考以下文章

如何在delphi firemonkey中为floatanimation添加音效?

在 iOS 8 的 Today 扩展(小部件)中为按钮添加操作?

如何在 iOS 中为 HTML 文件添加书签?

如何在 iPad 上播放系统按钮点击声音?

如何在 NativeScript 中为 iOS 更改突出显示状态的按钮文本颜色?

如何在android中为按钮添加图像?