用户正在使用应用程序(例如Spotify)收听音乐.
用户想要在他的歌曲中播放我的游戏,目前当使用启动我的应用程序时,他的歌曲就会停止.
我想防止这种行为,事实上:如果其他应用程序正在使用“声音”,或者如何播放我的声音并保持用户的音乐播放,我该怎么办才能播放声音.
目前这是我的代码:
@property (strong,nonatomic) SKAction *hitSound;
在init方法中:
_hitSound = [SKAction playSoundfilenamed:@"laugh.caf" waitForCompletion:NO];
用户按下屏幕后:
-(voID)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ SKAction *sequence = [SKAction sequence:@[_hitSound]]; [node runAction:sequence completion:^{ //Stuff}];
}
解决方法 您的应用程序需要管理允许后台音频继续播放的AVAudioSession.这将允许后台音频应用程序继续播放,您的应用程序声音将与它混合.AVAudioSession类是单例类,是AVFoundation框架的一部分.务必将AVFoundation链接到目标.在需要它的类中导入框架.
#import <AVFoundation/AVFoundation.h>
声明应用程序音频会话的好地方在应用程序委托中,因此可以在应用程序中放置以下代码:dIDFinishLaunchingWithOptions:method.
// activate a mixable session// set audio session category AVAudioSessioncategoryPlayback [[AVAudioSession sharedInstance] setcategory:AVAudioSessioncategoryPlayback withOptions:AVAudioSessioncategoryOptionMixWithOthers error:nil]; [[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:nil]; [[AVAudioSession sharedInstance] setActive:YES error: nil];
就你自己的应用程序听起来或不播放而言,一种可能性是将BOol类型的属性命名为’mute’并检查是否需要SKAction来播放音频.您可以检查是否正在播放背景音频并相应地设置“静音”属性.您还可以决定为设置此属性的用户提供界面.可能性很多.
您可以检查背景音频是否像这样播放 –
BOol isPlayingAudio = [[AVAudioSession sharedInstance] otherAudioPlaying];
从这里开始,您的代码可以决定将self.mute设置为什么.
AVAudioSession类参考在这里找到 – AVAudioSession Class Reference
总结以上是内存溢出为你收集整理的ios – Sprite Kit声音问题,如何防止用户停止声音全部内容,希望文章能够帮你解决ios – Sprite Kit声音问题,如何防止用户停止声音所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)