工具栏上的 xcoded 静音按钮可将应用程序的声音静音

Posted

技术标签:

【中文标题】工具栏上的 xcoded 静音按钮可将应用程序的声音静音【英文标题】:xcoded mute button on toolbar to mute sound just of the App 【发布时间】:2013-04-03 17:20:19 【问题描述】:

我是 ios 开发的新手。我有一个简单的“点击器”应用程序,每次单击屏幕按钮时都会发出声音(mp3 文件)。

我想实现一个静音按钮,当它被选中时:

    按钮图像发生变化(并保持变化直到再次被选中)

    只有应用程序的声音被静音

    再次选择时返回原始状态 - 声音开启和前一个按钮图像

这是我播放声音的方式:

- (IBAction)click;


#import "soundButtonViewController.h"

@implementation soundButtonViewController

-(IBAction)click

   CFBundleRef mainBundle = CFBundleGetMainBundle();
   CFURLRef soundFileURLRef;
   soundFileURLRef =CFBundleCopyResourceURL(mainBundle, 
   (CFStringRef)@"click",CFSTR ("mp3"), NULL);
   UInt32 soundID;
   AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
   AudioServicesPlaySystemSound(soundID);

在任何地方都有这样的示例代码吗?我已经做了一些研究,似乎有一些方法,但想要针对我的要求。任何帮助或方向将不胜感激。谢谢。

【问题讨论】:

您可以为此使用暂停功能。改变形象并不难。你能告诉我们一些你的代码吗?你到底是怎么播放那个声音的? 嗨,添加了我如何播放声音的代码 【参考方案1】:

对于更改按钮,我通常的做法是创建一个 BOOL 来跟踪按钮的状态。在这种情况下,BOOL 是“muteOn”,按钮的 IBOutlet 是 muteButton。然后,我使用此代码来控制按钮图像以及应用程序是否静音。如果 muteON 设置为 YES,您还可以在单​​击操作(如下所示)中放置 if/then 以播放声音或不执行任何操作。记得在 .h 文件中声明你的 Bool。

-(IBAction)muteToggle

if (muteOn == YES) 
    muteOn = NO;
    UIImage *buttonImage = [UIImage imageNamed:@"muteOff.png"];
    [muteButton setImage:buttonImage forState:UIControlStateNormal];


else 
    muteOn = YES;
    UIImage *buttonImage = [UIImage imageNamed:@"muteOn.png"];
    [muteButton setImage:buttonImage forState:UIControlStateNormal];





-(IBAction) click 

 if (muteOn == YES)
//Do Nothing
 

 else
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef =CFBundleCopyResourceURL(mainBundle, 
 (CFStringRef)@"click",CFSTR ("mp3"), NULL);
  UInt32 soundID;
 AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
  AudioServicesPlaySystemSound(soundID);



【讨论】:

抱歉,您上面提到的解决方案是让应用静音以及更改按钮图像? 上面的代码现在已经调整了您的代码以包含 muteOn BOOL 和相关功能。 为什么将 muteOn 与 YES 进行比较?有点多余的没有? Lance,在什么情况下是多余的?你能说得更具体点吗? (muteOn == YES) 只有当 muteOn 已经包含 YES 时才为真。所以你可以只做 if(muteOn) 和 if(muteOn == YES) 一样的事情

以上是关于工具栏上的 xcoded 静音按钮可将应用程序的声音静音的主要内容,如果未能解决你的问题,请参考以下文章

macOS 上的 AVAudioInputNode 仅输出静音

想要为全屏视频背景上的音频创建自定义静音/取消静音按钮

静音按钮不会静音 AVAudioPlayer

xcode / storyboard:无法将栏按钮拖动到顶部的工具栏

自定义静音/取消静音按钮Youtube API

重构应用程序委托