2

我想以编程方式降低 iPhone 的铃声音量,我知道可以使用AVSystemController,但我知道,这是一种私有方法。如果我使用它,苹果会拒绝该应用程序还是请建议我另一种方式

4

5 回答 5

4
- (void) setSystemVolumeLevelTo:(float)newVolumeLevel
{
    Class avSystemControllerClass = NSClassFromString(@"AVSystemController");
    id avSystemControllerInstance = [avSystemControllerClass performSelector:@selector(sharedAVSystemController)];

    NSString *soundCategory = @"Ringtone";

    NSInvocation *volumeInvocation = [NSInvocation invocationWithMethodSignature:
                                  [avSystemControllerClass instanceMethodSignatureForSelector:
                                   @selector(setVolumeTo:forCategory:)]];
    [volumeInvocation setTarget:avSystemControllerInstance];
    [volumeInvocation setSelector:@selector(setVolumeTo:forCategory:)];
    [volumeInvocation setArgument:&newVolumeLevel atIndex:2];
    [volumeInvocation setArgument:&soundCategory atIndex:3];
    [volumeInvocation invoke];
}  
于 2014-05-01T08:33:56.333 回答
0

使用任何一种私有方法都会导致 Apple 拒绝您的应用程序。由于公共 iOS SDK 不允许您更改铃声音量,因此您将无法从您的应用程序中进行此操作。

于 2014-01-16T08:58:22.350 回答
0

可能是的,苹果会拒绝它。这是告诉您如何执行此操作的链接。 [链接2

更新:

[[MPMusicPlayerController applicationMusicPlayer] setVolume:setvalue];

也检查这些链接 链接。您不能以编程方式更改铃声音量。

于 2014-01-16T09:04:19.503 回答
-1

你可以使用 AVAudioPlayer 和 MPVolumeView 来管理价值也请参考这个链接: 如何为 iPhone 实现音量键快门?

于 2014-01-16T09:02:53.877 回答
-2

试试这个代码

float value = 0.5;//this should be between 0.0 to 1.0

[[MPMusicPlayerController applicationMusicPlayer] setVolume: value];
于 2014-01-16T08:59:15.033 回答