【问题标题】:Objective-C Method to mute and unmute volumeObjective-C 方法来静音和取消静音
【发布时间】:2011-02-03 01:42:44
【问题描述】:

我有点卡住了,我正在尝试编写一个方法,当按下按钮时;将获取 iTunes 的当前音量,将音量存储为声明为 x 的 int。然后使 iTunes 音量等于 0,这实际上会使 iTunes 音量静音,但是如果再次按下按钮,我希望 iTunes 音量返回到 int x,这实际上将取消 iTunes 音量静音并将其恢复到原始音量音量。

这是我目前所拥有的:

- (IBAction)muteAndUnmute:(id)sender {
    iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
    int x;
    x = [iTunes soundVolume];
    if ([iTunes soundVolume] > 0 ) {
        [volumeSlider setIntValue:0];
        [iTunes setSoundVolume:[volumeSlider intValue]];
        [volumeLabel setIntValue:[volumeSlider intValue]];}
    }

任何帮助将不胜感激,我认为这很容易做到,但我无法理解它,提前感谢 Sami。

【问题讨论】:

  • 我已将“cocoa”的“静音”标签更改为您正在使用的主要框架,并且没有在任何地方提及。

标签: objective-c cocoa xcode itunes volume


【解决方案1】:

将您的音量值 (vol) 作为类变量而不是本地变量,然后

// MyWindowController.h
@interface MyWindowController : NSWindowController {
    int  vol;
}
- (IBAction)btnPressed:(id)sender;
@end


// MyWindowController.m    
@implementation MyWindowController

- (id)init {
    if (self = [super init]) {
        vol = 0;
    }
   return self;
}


- (IBAction)btnPressed:(id)sender
{

        id iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
        if ([iTunes soundVolume] > 0 )
        {
            vol = [iTunes soundVolume];
            [iTunes setSoundVolume:0];
        }
        else
            [iTunes setSoundVolume:vol];

}

@end

【讨论】:

    【解决方案2】:

    你可以用这个:

    fVolume = [MPMusicPlayerController iPodMusicPlayer].volume;
    [MPMusicPlayerController iPodMusicPlayer].volume = 0.0;
    
    //do whatever you want
    
    [MPMusicPlayerController iPodMusicPlayer].volume = fVolume;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 2014-10-31
      • 2011-12-09
      相关资源
      最近更新 更多