iPod 音量级别影响应用程序音量级别

Posted

技术标签:

【中文标题】iPod 音量级别影响应用程序音量级别【英文标题】:iPod Volume Level Affects App Volume Level 【发布时间】:2011-01-14 14:20:40 【问题描述】:

我正在编写一个 iPad 应用程序,它使用“Flite”文本到语音引擎来宣布特定事件。 Flite 引擎使用 AVAudioPlayer 实例在呈现语音音频后播放它。为了好玩,我决定在我的应用程序中添加一些简单的控件,以允许用户在我的应用程序使用 MPMusicPlayerController 运行时控制 iPod 播放(下一个、上一个、播放/暂停和音量 - 基础)。

我遇到的问题是,当我使用 MPMusicPlayerController 调整 iPod 音量时,我的所有音频都会受到影响,包括其他音效和语音音频。在播放声音之前,我将这些其他音频播放器(AVAudioPlayer 实例)的音量设置为 1.0,但无论 iPod 播放器音量设置为什么,我似乎总是将音量设置为上限...

这正常吗?我能做些什么来绕过它?无论 iPod 播放器的音量如何,我都希望我的应用程序的音频以系统全音量播放。 (示例:用户已将系统音量设置为设备最大音量的 80%。我希望我的应用以 80% 的 100% 播放音频,同时允许用户将 iPod 音频播放调整为 80% 的 0-100% %.) 注意:我对“闪避”不感兴趣,而是在我的应用程序运行时始终将 iPod 音量调低(背景音乐)。

我还有一个问题,即 - 有时 - 当您第一次启动应用程序并按下 iPod 播放器上的播放(发送 [player play] 调用)时,iPod 没有响应。如果我按下主页按钮,进入 iPod 应用程序并开始播放,然后返回我的应用程序,它工作正常。这有什么关系?

提前感谢您的帮助!

【问题讨论】:

嗨 Vic,你有解决方案吗,因为我也面临与 MPMusicPlayerController 和 AVAudioPlayer 相同的问题。 不,我确实实现了“闪避”,但这个解决方案不是我或我的用户的行为... 【参考方案1】:

这可能与您指定的音频会话类别有关。查看Audio Session Programming Guide,看看您是否选择了正确的类别。

【讨论】:

此文档没有帮助。我唯一能做的就是实现我所做的“闪避”,但这不是我或我的用户想要的...... 您使用的是哪个音频会话类别? 我正在使用:kAudiosessionCategory_MediaPlayback 类别。【参考方案2】:

侧面的音量按钮控制系统音量,进而控制应用声音的音量。

我猜它被认为是主音量控制。

【讨论】:

我不想覆盖侧键音量控制。我正在尝试降低 iPod 应用程序相对于我的应用程序音量的音量。但是,当我降低 iPod 应用程序的音量时,它也会降低我的应用程序的音量。所有音量都等于或低于按钮设置的主音量。【参考方案3】:

您可以使用 AVItem 的 setVolume 设置特定样本或声音的音量

[项目集音量]

您可以创建一个 AVItem 来引用您的应用程序或 iphone 上的现有声音文件。代码很简单,看起来像这样 -->

AVItem *item [[AVItem 分配] initWithPath:@"文件"]; [项目集音量];

顺便说一句,这不会影响音频通道的其余部分(由某种 AVController 对象实例化),并且您在代码中设置的音量不会显示在屏幕上,所以我不确定您是否可以更改它在运行时。

【讨论】:

这不起作用。即使我将音量设置为 100% (1.0),它仍然永远不会高于 iPod 应用程序的音量设置。我不明白为什么 iPod 音量设置会影响我的应用程序的音量。当然,我确实希望我的应用程序的音量不会超过主音量级别。我想知道苹果是否将主音量与 iPod 音量相同... 你在使用 AVAudioPlayer 吗? 如果不是,您可能需要考虑它。因为这与 [setVolume] 使用相同的 API,所以可能会更好 是的,我的应用程序播放的所有音频都使用了 AVAudio Player。同样,我在播放声音之前将 AVAudioPlayer 实例的音量设置为 1.0,但它总是以 iPod 应用程序上设置的音量级别播放音频。 好的,这很有趣。我有一个应用程序,我在其中使用 [setVolume:...] 方法,它适用于我的,但如果你修复它或只是发现它无法完成,请发布链接。抱歉,我无法修复它。

以上是关于iPod 音量级别影响应用程序音量级别的主要内容,如果未能解决你的问题,请参考以下文章

处理特定应用程序的音量级别

如何在iOS上获得音量级别和音量更改通知?

远程通知音量级别与应用程序中播放的声音不同

如何获取和设置通用 Windows 应用程序的音量级别

在 Windows 中更改 SYSTEM 音量级别

抓取左右音量平衡级别