gpt4 book ai didi

ios - 如何在 iOS 上更改设备音量 - 而不是音乐音量

转载 作者:技术小花猫 更新时间:2023-10-29 10:06:18 24 4
gpt4 key购买 nike

我想在 iOS (iphone) 上更改设备音量。

我知道我可以用下面这行来改变音乐库的音量:

//implement at first MediaPlayer framework
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
musicPlayer.volume = 1;

但这不是我的目标。
我想更改设备音量或让我说出铃声的音量。

我该怎么做?只是改变DEVICE音量?

最佳答案

回答brush51的问题:

How can i do that? just change the DEVICE volume?

正如 0x7fffffff 所建议的那样:

You cannot change device volume programatically, however MPVolumeView (volume slider) is there to change device volume but only through user interaction.

所以,Apple 推荐使用 MPVolumeView,所以我想到了这个:

添加volumeSlider属性:

@property (nonatomic, strong) UISlider *volumeSlider;

初始化 MPVolumeView 并添加某处到您的 View (可以隐藏,没有框架,或者由于 showsRouteButton = NOshowsVolumeSlider = 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];

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

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

还有其他方式,您可以通过以下方式设置音量:

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

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

关于ios - 如何在 iOS 上更改设备音量 - 而不是音乐音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com