如果 spritekit 中正在播放来自另一个应用程序的音乐,如何使 AVAudioPlayer 静音
Posted
技术标签:
【中文标题】如果 spritekit 中正在播放来自另一个应用程序的音乐,如何使 AVAudioPlayer 静音【英文标题】:How to mute AVAudioPlayer if music from another app is playing in spritekit 【发布时间】:2015-12-14 00:27:37 【问题描述】:默认情况下,我注意到在 Spritekit 中,如果正在播放来自另一个应用程序的音频,它会自动关闭并播放应用程序中的音频。我该如何做到这一点,以使相反的情况发生?如何使应用中的音频和音乐以及音效保持静音并播放外部音乐?
【问题讨论】:
【参考方案1】:您可以使用AVAudiosession
调整混音设置。您可以选择的可能音频类别很少,但我认为AVAudioSessionCategoryAmbient
可能最接近您想要的:
NSError *err;
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryAmbient error:&err];
if (err)
NSLog(@"There was a problem setting the session category: %@", error);
【讨论】:
感谢您的解决方案,但是应用内的音乐和声音并未静音,而是同时播放来自应用和外部应用的音乐 是的;这是存在的最接近的类别。您还有两个选择:尝试读取AVAudioSession
的secondaryAudioShouldBeSilencedHint
属性,但如果失败,您可能需要改为读取otherAudioPlaying
属性。从技术上讲,您应该使用前者而不是后者,但它们所做的事情略有不同,因此您可能需要同时尝试两者。
(注意:这需要您进行检查,即您检查条件并仅在适当时播放声音。)以上是关于如果 spritekit 中正在播放来自另一个应用程序的音乐,如何使 AVAudioPlayer 静音的主要内容,如果未能解决你的问题,请参考以下文章
在不同的 UIKit 和 SpriteKit 场景中连续播放音频
如何在 SpriteKit 中将磁贴更改为另一个(或空白)?