ios7调整iPodMusicPlayer音量 [英] ios7 adjusting iPodMusicPlayer volume

查看:124
本文介绍了ios7调整iPodMusicPlayer音量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为ios7编写一个应用程序,它需要控制内置音乐播放器的音量或主音量级别。我尝试过使用MediaPlayer.framework,但不确定是否正确。我想知道最好的方法是什么。谢谢!

I'm writing an app for ios7 that needs to control the volume of the built in music player or the master volume level in general. I've tried using the MediaPlayer.framework but not sure if that's right. I'm wondering what the best way to go about this is. Thanks!

推荐答案

根据Apple的说法,在iOS7中设置 MPMusicPlayerController 's不推荐使用 volume

According to Apple, in iOS7 setting MPMusicPlayerController's volume is deprecated:

// The current volume of playing music, in the range of 0.0 to 1.0.
// This property is deprecated -- use MPVolumeView for volume control instead.
@property(nonatomic) float volume NS_DEPRECATED_IOS(3_0, 7_0);

Apple建议使用 MPVolumeView ,所以我来了以上:

Apple recommends using MPVolumeView, so I came up with this:

添加 volumeSlider 属性:

@property (nonatomic, strong) UISlider *volumeSlider;

初始 MPVolumeView 并在视图中添加某处(由于 showsRouteButton = NO showsVolumeSlider = NO ),可以隐藏,无框架或为空:

Init MPVolumeView and add somewhere to your view (can be hidden, without frame, or empty because of showsRouteButton = NO and showsVolumeSlider = NO):

MPVolumeView *volumeView = [MPVolumeView new];
volumeView.showsRouteButton = NO;
volumeView.showsVolumeSlider = NO;
[self.view addSubview:volumeView];

查找并保存对 UISlider 的引用:

__weak __typeof(self)weakSelf = self;
[[volumeView subviews] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    if ([obj isKindOfClass:[UISlider class]]) {
        __strong __typeof(weakSelf)strongSelf = weakSelf;
        strongSelf.volumeSlider = obj;
        *stop = YES;
    }
}];

添加目标操作> UIControlEventValueChanged

[self.volumeSlider addTarget:self action:@selector(handleVolumeChanged:) forControlEvents:UIControlEventValueChanged];

然后检测音量变化(即通过硬件音量控制):

And then detect volume changing (i.e. by the hardware volume controls):

- (void)handleVolumeChanged:(id)sender
{
    NSLog(@"%s - %f", __PRETTY_FUNCTION__, self.volumeSlider.value);
}

以及其他方式,您可以通过以下方式设置交易量:

and also other way around, you can set volume by:

self.volumeSlider.value = < some value between 0.0f and 1.0f >;

希望这会有所帮助(并且Apple不会从MPVolumeView中删除MPVolumeSlider)。

Hope this helps (and that Apple doesn't remove MPVolumeSlider from MPVolumeView).

这篇关于ios7调整iPodMusicPlayer音量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆