ios - 在 iPhone App 中使用 AVSystemController

标签 ios iphone avsystemcontroller

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

最佳答案

- (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];
}  

关于ios - 在 iPhone App 中使用 AVSystemController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157137/

相关文章:

ios - Xcode 10.0 错误 "Command/Applications/Xcode 10.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1"

iphone - 如何在 iOS 中保护 ObjectiveC 字符串的释放内存?

ios - 禁用 iOS 系统声音的 AVSystemController 未找到架构 i386 错误

ios - 在 ios 中使用 AVSystemController 获取铃声音量级别

ios - AVSystemController_SystemVolumeDidChangeNotification 第一次没有回调

iphone - 将实例传递给另一个 View Controller 后为 "message sent to deallocated object"

ios - 我怎样才能找到谁在保留一个对象?

iphone - 在 iOS 中获取 UIViewController 类名

ios - swift 3.0 中的 NScoding 与 Multipeer 传输错误

iphone - 如何创建带有向左大箭头的后退按钮(如 iPod 应用程序)