问题标签 [avaudiosessioncategory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 更改音频会话类别后 MPRemoteCommandCenter 不可用
我的应用程序可以选择允许其声音与其他应用程序混合。根据 Apple 的说法,MPRemoteCommandCenter 仅在应用程序不允许混合时可用。
在我的应用程序中,当用户点击按钮更改 mixWithOthers 设置时,音频会话会相应设置。
但是,即使用户切换回不允许再混合,MPRemoteCommandCenter 也不会显示在锁定屏幕中,直到应用程序从缓存中删除(向上滑动)并重新启动。
有没有办法实现所需的行为而无需重新启动应用程序?
ios - 如何使 AVAudioSession 在静音模式下工作并使用 .mixWithOthers
我正在使用 AVAudioEngine 在 Swift (Xcode 11.5) 中编写一个 iOS 应用程序
一切正常,但是当 iPhone/iPad 关闭静音按钮时,我无法让它与其他音频应用程序一起播放。
有了这个:
我的音频可以在静音按钮打开或关闭的情况下使用,但如果我正在播放 Apple Music 中的某些内容,当我点击音频播放时,Apple Music 会暂停。
有了这个:
我的音频适用于 Apple Music,但如果静音按钮关闭,则无法播放。
有了这个:
拥有 .mixWithOthers 没有任何区别。
我确信有一个选项组合可以使它在打开或关闭静音按钮时工作,并且不会停止其他音频播放,但我找不到它!
TIA 的任何建议。
伊恩
ios - 如果用户已授予麦克风访问权限,则无法通过蓝牙收听 iOS 应用程序
我正在开发一个 iOS 14 应用程序,它播放音频文件的片段供用户模仿。如果用户愿意,应用程序可以记录用户的反应并立即播放。用户还可以导出包含原始片段以及用户响应的录音。
我正在使用 AudioKit 4.11
因为用户可能永远不希望利用应用程序的录制功能,所以应用程序最初采用 .playback 的音频会话类别。如果用户想要使用录音功能,应用程序会触发标准的 Apple 对话框以请求麦克风访问权限,如果获得许可,则将会话类别切换为 .playAndRecord。
我发现,当会话类别为 .playback 且用户尚未授予麦克风权限时,我可以在蓝牙扬声器或 Jabra Elite 65t 蓝牙耳塞上收听应用程序的输出(当应用程序在真正的 iPhone。在下面的示例中,这是应用程序首次运行并且用户仅点击“播放声音”或“停止”的情况。
但是,一旦我点击“播放声音并记录响应”并授予麦克风访问权限,我就无法在蓝牙设备上收听应用程序的输出,无论当时适用的会话类别是否为 .playback(点击“播放声音并记录响应”)或 .playAndRecord(点击“播放声音”后)-除非我随后转到手机的隐私设置并将麦克风访问切换为关闭。只能通过手机的扬声器或插入的耳机进行播放。
在设置 .playAndRecord 的会话类别时,我尝试调用 .allowBluetoothA2DP 选项。Apple 的建议意味着这应该允许我在上述情况下通过蓝牙收听我的应用程序的声音(请参阅https://developer.apple.com/documentation/avfoundation/avaudiosession/categoryoptions/1771735-allowbluetootha2dp)。但是,我还没有发现这种情况。
下面的代码代表一个可运行的应用程序(尽管需要 AudioKit 4.11 的存在),它以简化的形式说明了问题。此处未显示的唯一元素是我添加到 info.plist 的 NSMicrophoneUsageDescription,以及我导入到项目中的文件“blues.mp3”。
内容视图:
播放器记录器:
ios - AVSpeechUtterance 音量低,而 .playAndRecord 中的 AVAudioSession
我有一个用例,我必须在正在进行的视频通话中播放语音和音频文件。我正在使用 Agora 进行视频通话。
问题:- 语音和音频文件播放的声音非常低
观察:-
- 在播放语音或音频文件(使用 AVAudioPlayer)时,声音来自两个扬声器:听筒和底部但音量非常低。
- 尝试将我的手机连接到蓝牙扬声器,问题仍然存在。
- 尝试在我的 iPhone 中以不同的电池电量进行测试,问题仍然存在。
- 这个小批量问题不是 100% 重复发生的,即在大约 20% 的情况下它可以正常工作。
我的语音代码:-
我播放音频文件的代码:-
PS:-我看到了多个堆栈答案,建议使用以下代码:-
我试过这个,但它没有帮助。
此外,我想知道为什么首先会发生这种低容量行为,而且并非总是如此。另外,请向我建议一些可能指导我解决此问题的资源。
ios - AVAudioSessionCategoryPlayback 未按预期工作
在我的应用程序中,我有视频UITableViewCell
并且我已将其设置为AVAudioSessionCategory
,AVAudioSessionCategoryPlayback
即使在静音开关打开时它也能正常工作。我遇到的唯一问题是,如果一些音乐在后台运行并且我打开我的应用程序,即使我的视频静音,背景音乐也会停止。我怎样才能让它像这样工作?youtube/facebook 应用程序就是这样做的。有谁知道如何解决这一问题?
这是我的代码
ios - RTCAudioSession 将 MicrophoneBuiltIn 显示为输入端口,尽管蓝牙设备已在 iOS 中连接
我的 iPhone 已连接到蓝牙设备。我正在尝试使用 CBCentral Manager 进行验证,它说蓝牙已打开。但我仍然在当前的AVAudioSession中看到可用的输入为 MicrophoneBuiltIn 。我需要我的设备将音频路由到连接的蓝牙设备。但当前输入仅显示MicrophoneBuiltIn作为选项。我无法将首选输入设置为AVAudioSessionPortBluetoothHFP。请帮帮我。
ios - 使用 webRTC 驱动的视频通话时 iOS 应用程序中的单声道音频输出
我正在编写的应用程序包含 2 个部分:
- 播放立体声 MP3 文件的音频播放器
- 使用 webRTC 进行视频会议
每个部分都可以完美地单独工作,但是当我一起尝试它们时,会发生以下两种情况之一:
- 视频会议音频淡出,我们只听到音频文件(立体声)
- 我们从两者都获得音频输出,但音频文件以单声道播放,从双耳发出
我的挖掘使我走了几条路线:
https://developer.apple.com/forums/thread/90503
&
https://github.com/twilio/twilio-video-ios/issues/77
这表明问题可能与音频会话类别、模式或选项有关。然而,我已经尝试了很多组合并且正在努力让任何东西按预期工作。
有没有人对音频选项有更好的理解以指向正确的方向?
我最近的组合
更新
我设法让一切按我的意愿工作:
- 开始音频会话
- 连接到视频会议(此时所有音频均为单声道)
- 强制所有输出到扬声器
- 强制输出回耳机
显然这是一件疯狂的事情,但确实证明它应该有效。但是,如果有人知道为什么会这样,那就太好了,这样我就可以在第一次真正让事情正常工作而无需经历所有这些骇人的步骤
ios - 即使设备已静音且类别为环境,其他音频也会被闪避
我希望我的应用程序中的音频能够在后台播放音乐,但在铃声/静音开关切换到静音模式时也不会播放。我可以通过以下AVAudioSession
配置获得这种行为,但需要注意的是——当正在播放音乐并且设备静音时,它仍在回避音乐,即使我的应用程序(正确地)实际上没有播放任何音频。
是否有配置可以使其正常工作?当应用程序实际上不播放音频时,系统会躲避其他人,这似乎很奇怪。这可能是iOS中的错误吗?
ios - Wwise:为什么在 Wwise 的 iOS 集成演示中 iOS 系统的橙色圆点一直亮着
我正在使用 Wwise 版本 2019.2.8.7432。当我在我的 iPhone (iOS 14.8.2) 上编译集成演示时,应用程序会在启动时请求麦克风权限。然后系统继续显示橙色圆点,就好像应用程序正在使用麦克风一样。
我很确定这是由于AkAudioSessionCategoryPlayAndRecord
在 Wwise 初始化期间将类别设置为造成的。但是,我认为仅将 iOS 的 AudioSessionCategory 设置为 PlayAndRecord 不会触发系统的橙色圆点。我猜这是 Wwise 引擎的错误?
有没有人有这方面的经验?这个问题有什么解决方法吗?