UIButton点击声音不起作用?

Posted

技术标签:

【中文标题】UIButton点击声音不起作用?【英文标题】:UIButton Click sound not working? 【发布时间】:2014-01-02 08:23:44 【问题描述】:

我已经执行了以下代码,但声音不起作用。 在.h

 #import <AVFoundation/AVAudioPlayer.h>
 #import <AVFoundation/AVFoundation.h>

在.m

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

AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl];

[player play];

但我听不到任何声音。实际上我想管理按钮单击声音以及音量按钮,所以我正在使用这种方法。

【问题讨论】:

您使用的是 iPhone、iPod、iPad 哪款设备? 您是否正在配置应用程序音频会话? 不,我没有确认,我应该做什么以及使用哪种协议? 【参考方案1】:

你设置音量了吗?

[player setVolume:1.0];

另一种播放短音的方法是AudioservicesCreateSystemSoundID

查看链接Play a short sound in iOS

【讨论】:

【参考方案2】:

尝试:

 self.theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:(__bridge NSURL *)(soundUrl) error:NULL];

    self.theAudio.volume = 1.0;
    self.theAudio.delegate = self;
    [self.theAudio prepareToPlay];
    [self.theaudio play];

【讨论】:

【参考方案3】:

这对我来说很完美。

将 AVFoundation 和 AudioToolBox 框架添加到项目中

#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>

@interface TestViewController : UIViewController

    SystemSoundID SoundID;


@implementation TestViewController
-(void) viewDidLoad 
    [super viewDidLoad];
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"caf"];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &SoundID);  //When using ARC, make sure to use __bridge
 

-(void) playSound 
     AudioServicesPlaySystemSound(SoundID);
 

【讨论】:

以上是关于UIButton点击声音不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

UiButton 点击​​在 UIView 上不起作用

如果将 UIButton 作为子视图添加到 UIImageView,则单击 UIButton 不起作用

为啥我的 UIButton 不起作用?

UIButton 子类@IBAction 不起作用

由 UITapGestureRecognizer 创建的单击在 UIButton 上不起作用

UIButton 在 UITableView 中不起作用(点击时崩溃)?我可以得到一些关于 obj-c 的帮助吗