应用运行时将 iPhone 的音量控制转移到应用
Posted
技术标签:
【中文标题】应用运行时将 iPhone 的音量控制转移到应用【英文标题】:Divert iPhone's volume control to app when app is running 【发布时间】:2016-02-17 05:22:59 【问题描述】:我正在使用 AVSpeechSynthesizer 在我的应用程序中将文本转换为语音。此应用程序会在一定间隔后读取文本。
每当应用程序说话时,如果我按下设备的音量按钮,它会改变当前语音的音量以及设备的媒体音量。 (即,如果正在播放任何音乐并且 AVSpeechSynthesizer 开始说话,音乐会暂停,并在语音结束后立即恢复。因此,同时如果我改变音量,它也会应用于音乐播放器的音量。)
那么是否可以在应用运行时强制音量控制按钮单独改变应用音量?
PS。该应用适用于 ios 8.0+。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
作为旁注,这个问题被标记为 [objective-c] 和 [swift]。您是在同一个项目中使用两者还是使用一个特定的项目? 它很快。我错误地添加了 Objective-C 标志。感谢您指出。 【参考方案1】:不,您不能拦截硬件音量并仅调整您的应用音量,它不是为此而设计的。然后操作系统需要跟踪每个应用程序的所有卷,例如如果您让 AudioBus 与多个链接在一起的应用音频流一起运行会怎样。
您需要重新考虑您的问题。要控制应用的音量,请在 UI 中添加音量控件。
【讨论】:
是的,我理解这个问题。也许在应用程序中添加一个单独的音量滑块是唯一的解决方案。【参考方案2】:据我了解,您希望在应用程序中单独控制音量而不影响设备音量。这听起来很困难,我认为它无法实现。
你可以在这里尝试一个选项,我已经解释过:
在应用中存储设备音量和应用音量值 在使用应用音量控制时,不要更改应用音量,只需将该值存储在应用音量中 现在,在应用中播放任何内容时,应用音量值会改变音量 播放完毕后,只需使用设备音量值更改音量重要提示:
这是在不影响系统音量的情况下在应用程序中控制声音的纯逻辑方式。您在 App 文档中的任何地方都找不到这种方式。编辑:
如果您想在按下设备音量按钮时保持应用音量不变。你可以试试这个步骤。它看起来没有经过测试,但可能会起作用。
查看App中是否可以不断查看更新的设备音量值。 如果您收到有关设备音量的通知,请在应用程序中进行一些更改。从设备音量按钮更改时,您可以在应用程序中再次重置它。希望对你有帮助。
【讨论】:
感谢您的回答。添加单独的音量控制是一种解决方案,但我不想在应用程序说话期间按下设备音量按钮时更改音乐播放器的音量。 @Preety 只是检查我的答案的编辑。也许它会帮助你。以上是关于应用运行时将 iPhone 的音量控制转移到应用的主要内容,如果未能解决你的问题,请参考以下文章