在 iPhone 应用程序中使用 AVSystemController

2023-12-31

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


- (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];
}  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iPhone 应用程序中使用 AVSystemController 的相关文章

随机推荐

  • 单击标签不会单击 React 中的复选框?

    我创建了一个表单 用户可以在提交表单之前选择选项 我隐藏复选框display none我正在设计
  • Pandas:填充缺失日期的数据

    假设我有下表 ProdID Date Val1 Val2 Val3 Prod1 4 1 2019 1 3 4 Prod1 4 3 2019 2 3 54 Prod1 4 4 2019 3 4 54 Prod2 4 1 2019 1 3 3
  • 调用其他线程调用的函数时,线程未启动

    我正在使用线程来显示进度窗口 同时执行耗时的操作 for 循环 在该操作之后 我想停止线程 但是该方法 显示进度对话框 没有被调用 我在其他事件中使用相同的方法 效果很好 下面是代码 Private Sub TSBRSToLoc Click
  • sort/2、keysort/2 与 samsort/3、predsort/3

    ISO Prolog 提供sort 2 and keysort 2它依赖于术语顺序 7 2 通常称为 标准术语顺序 以不同顺序对列表进行排序的常见方法是映射每个元素El以某种方式将该列表转换为成对列表XKey El然后对该列表进行排序 最后
  • 用于多级查询的动态 Linq 表达式

    我想动态构建以下 Linq 表达式 我遇到的问题是我无法构建表达式树来容纳复杂的 Select Any 语句 我读过 为了使用方法 您实际上必须调用该方法 如下所示 Invoke Any 我需要动态构建的表达式 Expression
  • SVN:如何使用 subversion 使文件只读?

    我正在开发一个在 SVN 存储库中管理的大型 Web 项目 每次团队成员签出项目 或者我们在新的生产服务器上签出项目时 我们都必须修改该服务器的自定义配置文件 我有一个受修订控制的 config ini base 文件 我们不断更新最新的设
  • 如何在调整窗口大小时自动调整 BorderPane 上按钮的大小?

    我的 Java 水平为中级 对 JavaFX 还很陌生 我正在开发一个在 JavaFX 8 中使用 BorderPane 的应用程序 BorderPane 的底部有两个按钮 我想将按钮放置 对齐 BorderPane 底部的中心 但不知道执
  • jqGrid 树形网格与寻呼机

    我们如何使用 jqGrid 与寻呼机制作树形网格 我已经检查并尝试了演示 但它没有显示任何寻呼机 即使代码中有一个寻呼机 div 如何创建寻呼机 树形网格有一些局限性 有记录的 http www trirand com jqgridwiki
  • 使用 cx_Oracle 从引用游标检索列名

    在使用 cx Oracle 调用一个简单的存储过程时 我可以轻松地从该过程中获取数据 如下所示 db db class Sets up stuff etc conn db connect Returns a connection to th
  • 在网站上使用多种语言的最佳方式是什么?

    我想知道实现基于多语言模板的网站的最佳方法是什么 假设我想提供英语和德语网站 有一些不同的方法 我的兴趣主要是SEO 所以这对于搜索引擎来说是最好的方式 我经常看到的第一种方法是为每种语言使用不同的目录 例如 www example com
  • 记忆库模式和单元测试

    我已经看到了存储库模式的一些实现 非常简单直观 链接到 stackoverflow 中的其他答案 http www codeproject com Tips 309753 Repository Pattern with Entity Fra
  • VSTS 更改时区

    更改 VSTS 中的全球时区是否会影响现有任务 或者它只是一个显示选项 有一位客户正在考虑改变这一点 但担心这是否会影响现有项目 VSTS中有两个不同的时区 VSTS 帐户时区 VSTS 用户配置文件时区 VSTS 账户 TZ 在问题中 您
  • nltk-hook 无法找到 nltk_data

    当使用 pyinstaller 构建可执行文件时 我得到 无法找到 home usr nltk data 添加二进制文件和数据文件时 我几乎尝试了互联网上的所有解决方案 将 hook nltk py 文件更改为此 import os imp
  • 跳过(完整)暂存区域并直接提交文件或补丁?

    想象一下这样的场景 您正在开发一个需要接触大量文件的功能 并且您已经暂存了很多事情 还有很多未暂存的事情 例如调试代码 为自己记住要做的临时注释 撤消某些事情 并且不要忘记添加您还没有时间添加的位 然后您会看到必须进行的简单一行更改 但该更
  • 从 CSV 文件中去除空格

    我需要从我读取的 CSV 文件中去除空格 import csv aList with open self filename r as f reader csv reader f delimiter quoting csv QUOTE NON
  • 为什么我的 gradle 任务在构建期间执行时被跳过?

    我目前正在将应用程序从 Maven 迁移到 gradle 4 10 2 在 Maven 中 将生成一个 tar gz 文件 其中包含配置 依赖项和一些空目录 然后应用程序在运行时将使用这些目录 在 gradle 中 我使用分发插件通过 di
  • 如何使组合框下拉列表比组合框本身*窄*

    是否可以使 ComboBox 下拉列表成为Narrower比组合框本身 有很多使用设置宽度的示例SendMessage Handle CB SETDROPPEDWIDTH 100 200 but the minimum无论此处指定什么 值均
  • BDE、Windows 7 和 UAC

    我有一个用 delphi 5 编写的非常旧的应用程序 在一些使用 BDE 的客户中运行 现在 一些使用 Windows Vista 和 7 的用户已经尝试了多用户访问的一些问题 我认为这些问题与net and lck文件 所以问题是哪种是配
  • 如何用笑话测试 Promise 延迟?

    这是我用来延迟进程的代码 用于退避 export function promiseDelay ms return new Promise resolve gt setTimeout resolve ms 我想测试一下 但我无法测试 我尝试使
  • 在 iPhone 应用程序中使用 AVSystemController

    我想以编程方式降低iPhone的铃声音量 我发现可以用AVSystemController 但我知道 它是一个私有方法 如果我使用它 苹果会拒绝该应用程序还是请建议我其他方式 void setSystemVolumeLevelTo floa