草庐IT

iphone - 核心音频(Audio Units) Audio Session 和 MPVolumeView

coder 2023-09-25 原文

我在开发 VOIP 应用程序。 我使用 Core Audio Audio Units 来播放和录制音频。我需要能够控制音量和输出设备。我正在尝试使用 MPVolumeView 来设置音量和选择输出设备。

我的问题是:当我开始使用(开始播放和捕获 RemoteIO 音频单元)音频单元时,MPVolumeView 似乎不再控制我的 session 的音量,而是控制系统范围的声音首选项。同时硬件按钮控制音频单元播放的声音音量。此外,当我开始使用 Audio Units MPVolumeView 时,它开始显示更改输出设备的按钮,但在此之前它没有。

似乎 MPVolumeView 控制某些系统范围 Audio Session 的音量,但是当我开始使用音频单元时,会创建另一个应用程序范围(甚至音频单元范围)的 Audio Session 并用于播放声音。

所以问题是如何让 MPVolumeView 控制我的 Core Audio Audio Session 的音量?

我将不胜感激关于为什么会发生这种情况的任何提示。我几乎整天都在谷歌上搜索,我看到有些人有相关问题,但没有人得到任何提示 :(。如果需要,我也可以发布更多详细信息。

最佳答案

已被 Apple 工程师确认为错误。

更多细节 - MPVolumeView 应该绑定(bind)到特定的音频路由(更广泛的意义上,如音频路由 + 音频类别 + 模式等),并且它适用于几个最常见的路由(例如耳机 + 播放类别+ 默认模式)但不是您可以创建的所有自定义路由。

所以基本上当一个人创建一些自定义路由时,MPVolumeView 仍然试图控制它的最后(可行)或默认路由。

关于iphone - 核心音频(Audio Units) Audio Session 和 MPVolumeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321479/

有关iphone - 核心音频(Audio Units) Audio Session 和 MPVolumeView的更多相关文章

  1. ruby - 如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法? - 2

    我是Ruby分析的新手,看起来像ruby-prof是一个受欢迎的选择。我刚刚安装了gem并调用了我的程序:ruby-prof./my-prog.rb但是,输出非常冗长,因为包含所有Ruby核心和标准库方法以及其他gem的分析数据。例如,前三行是:8.790.0110.0100.0000.0013343*String#%7.280.0780.0090.0000.0692068*Array#each4.930.0380.0060.0000.0321098*Array#map这对我来说不是什么有用的信息,因为我已经知道我的程序经常处理字符串和数组,并且大概已经对这些类进行了优化。我只关心我代

  2. [面试直通版]操作系统核心之进程、线程与协程(下) - 2

    点击->操作系统复习的文章集目录操作系统线程线程是什么进程与线程的关系用户态/内核态操作系统资源管理内核态用户态内核态/用户态切换程序运行类型分析计算密集型IO密集型结合进程,线程来理解程序运行类型分析协程基础上下文切换协程协程为什么叫协作式线程?协程的优缺点操作系统线程典型问题:简述进程和线程的区别以下内容带您一步步了解线程是什么比进程更小的独立运行的基本单位-线程(Threads)线程的提出主要是为了提高系统内程序并发执行的程度,从而进一步提升系统的吞吐量,充分发挥多核CPU的优越性而设计的引入进程是为了操作系统更加方便地管理程序,使得多个程序能并发管理和执行而线程则是为了减少程序在并发执

  3. micropython复现经典单片机项目(二)可视化音频 频谱解析(基本搞定) - 2

    本人是音乐爱好者,从小就特别喜欢那个随着音乐跳动的方框效果,就是这个:arduino上一大把对,我忍你很久了,我就想用mpy做,全网没有,行我自己研究。果然兴趣是最好的老师,我之前有篇博客专门讲音频,有兴趣的可以回顾一下。提到可视化频谱,必然绕不开fft,大学学过这玩意,当时一心玩,老师讲的一个字都么听进去,网上教程简略扫了一下,大该就是把时域转频域的工具,我大mpy居然没有fft函数,奶奶的,先放着。音频信息如何收集?第一种傻瓜式的ADC,模拟转数字,原始粗暴,第二种,I2S库,我之前博客有讲过,数据是PCM编码。然后又去学PCM编码,一学豁然开朗,舒服,以代码为例:audio_in=I2S

  4. 设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模 - 2

    “架设一个亿级高并发系统,是多数程序员、架构师的工作目标。许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”开篇要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。一.什么是领域驱动设计(DDD)首先要知道DDD是一种开发理念,核心是维护一个反应领域概

  5. iphone - 扩展 restful_authentication/AuthLogic 以支持匿名 iPhone 的延迟登录的最佳方法是什么? - 2

    我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符

  6. ruby - 子类化核心 Ruby 类,例如 Hash - 2

    我需要一个像Hash一样工作的类,但不一定具有所有Hash方法。我读到过将像Hash这样的核心类子类化不是一个好主意。不管这是不是真的,做这种事情的最佳实践是什么?#(a)subclassHash,addnewmethodsandinstancevariablesclassBook我知道Ruby有不止一种方法来完成给定的任务,但是在相对简单的情况下,对于上述方法中的哪一种更可取,是否有任何通用规则? 最佳答案 如果我绝对不希望类哈希对象具有某些哈希方法,那么我会将对象包装在我自己的类中,并且只公开我希望它具有的方法(您的选项b)。如

  7. 解决台式机麦克风不可用问题,只有音频输出,无音频输入 - 2

    解决台式机麦克风不可用问题戴尔灵越3880最近因为需要开线上会议,发现戴尔台式机音频只有输出没有输入,也就是只能听见声音,无法输入声音。先后尝试了各种驱动安装更新之类的调试,无果。之后通过戴尔支持解决~这里多说一句,专业的就是专业,问题描述过去,直接给了解决方案,可能是他们遇到的相似问题比较多了,但也告诉我们,有些时候是可以通过这些官方服务解决问题的,比起自己折腾效率要高很多。那就记录一下吧~问题描述:电脑只能输出声音,不能输入声音。1、前提需要准备一只带麦克风的耳机,将耳机插入面板。2、先确定是否可以听到声音,可以通过播放歌曲或者视频。3、然后确认麦克风是否可用,可以通过调用win自带麦克风

  8. ruby - 猴子补丁核心类的替代品 - 2

    我对Ruby还是个新手,基本上只是在读完Cooper的书后编写我的第一个微程序。我被指出了避免猴子修补的方向,但问题是我不知道实现相同行为的替代方案是什么。基本上,我想添加一个可供每个字符串对象访问的新方法。明显的猴子修补方法是:classStringdefdo_magic...magic...endend我记得有一种使用String.send的方法。但我不记得它是如何完成的,也不记得我是在哪里读到它的。谁能指出任何替代方案,让我仍然可以使该方法可用于String类和子对象? 最佳答案 任何其他的方式都会使猴子修补的语法更加笨拙。有

  9. Ruby 核心文档质量 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭4年前。Improvethisquestion我是Ruby的新手,时间有限,因此我尝试了一些简单的东西。最近我需要创建一个文件,因为我太懒了,所以我跑去谷歌。结果:File.open(local_filename,'w'){|f|f.write(doc)}真可惜,这很简单,我应该自己做的。然后我想检查File类的方法提供了什么ruby​​魔法,或者在调用这些方法时是否有任何“简化”,所以我前往文档here,并检查文件类。1.8.6文档在"fi

  10. ruby - 我将如何以编程方式与 VST(i) 插件交互以合成音频? - 2

    以VSTiTriforce为例,由Tweakbench提供。当加载到市场上的任何VST主机时,它允许主机向VSTi发送(大概是MIDI)信号。然后VSTi将处理该信号并输出​​由VSTi内的软件乐器创建的合成音频。例如,将A4(我相信是MIDI音符)发送到VSTi会导致它合成高于中央C的A。它将音频数据发送回VST主机,然后它可以在我的扬声器上播放或将其保存为.wav或其他一些音频文件格式。假设我有Triforce,我正在尝试用我选择的语言编写一个程序,它可以通过发送要合成的A4纸条与VSTi交互,并自动将其保存到系统上的文件?最终,我希望能够解析整个单轨MIDI文件(使用已经可用于此

随机推荐