0

我试图避免使用 MPVolumeView,因为它没有提供太多的自定义余地。基本上,我想实现一个音量控制,让用户提前设置来电者的音量。这就是那个屏幕的用途看起来像:

在此处输入图像描述

我想使用 UIButton 来创建增加和减少音量按钮,我正在考虑在 IB 中实现一个目标动作机制,如下所示:

- (IBAction)increaseVolume:(id)sender
{
    [someVolumeObject setVolume:[systemVolume volume] + 1];
}

- (IBAction)decreaseVolume:(id)sender
{
    [someVolumeObject setVolume:[systemVolume volume] - 1];
}

有谁知道是否有一个类可以让我提取系统卷元素并以这种方式增加它们(基本上不必使用 MPVolumeView)?

4

1 回答 1

1

试试这样

1.定义属性并合成到您的 MPMusicPlayerController 对象,

@property (nonatomic, retain) MPMusicPlayerController *musicPlayer;
@synthesize musicPlayer;

2.取一个浮点变量为,

   float volume_control=0;

3.在你的 viewDidLoad 方法中使用 NSNotification 来改变音量,

self.musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];
    [notificationCenter addObserver:self 
                       selector:@selector(handleExternalVolumeChanged:)
                           name:MPMusicPlayerControllerVolumeDidChangeNotification 
                         object:self.musicPlayer];
[self.musicPlayer beginGeneratingPlaybackNotifications];

4.define Method for handleExternalVolumeChanged: as,

- (void)handleExternalVolumeChanged:(id)notification {
  volume_control = self.musicPlayer.volume;
}

5.现在定义你的音量控制按钮来增加/减少音量,

-(IBAction)decrease_volume:(id)sender{
  if (volume_control>0) {
      self.musicPlayer.volume =self.musicPlayer.volume-0.1;  
      volume_control-=0.1;
      }
   }
 -(IBAction)increase_volume:(id)sender{
    if (volume_control<1) {
    self.musicPlayer.volume =self.musicPlayer.volume+0.1;  
    volume_control+=0.1;
   }
  }

希望它会帮助你..

于 2012-12-24T05:49:49.767 回答