工具栏上的 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 仅输出静音