ios – Sprite Kit声音问题,如何防止用户停止声音

ios – Sprite Kit声音问题,如何防止用户停止声音,第1张

概述我在使用Sprite Kit时遇到问题,当我想在用户交互后播放声音时. 用户正在使用应用程序(例如Spotify)收听音乐. 用户想要在他的歌曲中播放我的游戏,目前当使用启动我的应用程序时,他的歌曲就会停止. 我想防止这种行为,事实上:如果其他应用程序正在使用“声音”,或者如何播放我的声音并保持用户的音乐播放,我该怎么办才能播放声音. 目前这是我的代码: @property (strong, no 我在使用Sprite Kit时遇到问题,当我想在用户交互后播放声音时.

用户正在使用应用程序(例如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声音问题,如何防止用户停止声音所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1065997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存