小编rub*_*hak的帖子

如何正确处理音频中断?

我创建了一个利用OpenAL进行音频播放的OpenGL 3D游戏,如果在音频设备初始化之前按下"Home"按钮,则会遇到丢失音频的问题.我试图连接到音频会话中断处理程序,但我的回调永远不会被调用.无论我是最小化还是最大化我的申请.永远不会调用我的"OpenALInterruptionListener".

我究竟做错了什么?

AudioSessionInitialize(NULL, NULL, OpenALInterriptionListener, this);

void OpenALInterriptionListener(void * inClientData, UInt32 inInterruptionState)
{
    OpenALDevice * device = (OpenALDevice *) inClientData;

    if (inInterruptionState == kAudioSessionBeginInterruption)
    {
          alcSuspendContext(_context);
          alcMakeContextCurrent(_context);
          AudioSessionSetActive(false);
    }
    else if (inInterruptionState == kAudioSessionEndInterruption)
    {
          UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
          AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
          AudioSessionSetActive(true);    
          alcMakeContextCurrent(_context);
          alcProcessContext(_context);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ audio interrupt openal ios

12
推荐指数
1
解决办法
1766
查看次数

在天蓝色移动服务后端使用google + for iOS进行客户端身份验证

我正在尝试将服务器端的Google+登录集成到我的iOS应用中.

这就是我做的:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: NSString?, annotation: AnyObject) -> Bool
{
   return GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation:annotation)
}
Run Code Online (Sandbox Code Playgroud)

//在视图控制器中@IBOutlet弱var gpLoginView:GPPSignInButton!

    googlePlus = GPPSignIn.sharedInstance()
    googlePlus.shouldFetchGooglePlusUser = true
    googlePlus.clientID = "CLIENT-ID"
    googlePlus.homeServerClientID = "HOME-CLIENT-ID"
    googlePlus.scopes.append(kGTLAuthScopePlusLogin)
    googlePlus.delegate = self;


func finishedWithAuth(auth: GTMOAuth2Authentication!, error: NSError!)
{
    if error != nil
    {
        println("[GoogleAuthentication] Error: \(error)")
    }
    else
    {
        var serverCode = GPPSignIn.sharedInstance().homeServerAuthorizationCode
        if serverCode == nil
        {
            println("[GoogleAuthentication] homeServerAuthorizationCode is missing")
            googlePlus.disconnect()
        }
        else
        {
            client.loginWithProvider("google", token: ["access_token" : serverCode])
            {
                user, …
Run Code Online (Sandbox Code Playgroud)

authentication server-side azure ios google-plus

9
推荐指数
0
解决办法
364
查看次数

S3 托管 + Api 网关

我正在尝试在 S3 中托管一个静态站点,能够使用 Lambda/Api 网关处理一些动态内容。似乎无法做到这一点。我希望 URL 看起来像这样:

example.com/index.html
example.com/images/*
example.com/css/*
example.com/api/* -> API Gateway 
Run Code Online (Sandbox Code Playgroud)

另外,在重定向时,我想将 example.com 保留为根域。我在 S3 中尝试了 RoutingRules,但从客户端重定向。我需要这对用户透明,例如代理请求。

redirect amazon-s3 aws-lambda aws-api-gateway

8
推荐指数
2
解决办法
7982
查看次数

将离线地图嵌入到IOS应用程序中

如何将离线地图嵌入到iOS应用程序中?苹果地图或谷歌地图提供这种能力吗?我曾经遇到过MapBox,但我不太了解它是如何工作的以及它是否提供该功能。

offline map ios

5
推荐指数
1
解决办法
5313
查看次数

AWS ECS 中的 Zookeeper

我正在尝试使用容器服务在 AWS 中启动一个 zookeeper 集群。使用基本的“动物园管理员”泊坞窗图像。我目前有两个问题。

1) Zookeeper 需要设置一个“ZOO_MY_ID”变量。当我在家运行时,此变量在 docker compose 文件中填充为数字 1、2 等。如何在 ECS 中设置环境变量,为每个任务启动而增加?

2)Zookeeper 节点需要知道它的对等节点。它由“ZOO_SERVERS= server.1=10.0.0.1:2888:3888 server.2=10.0.0.2:2888:3888”变量设置。使用随机分配的 ip 地址,我应该如何配置 zookeeper 节点,以便它发现其对等节点?

谢谢,鲁本

containers service-discovery amazon-web-services amazon-ecs apache-zookeeper

5
推荐指数
0
解决办法
1617
查看次数

MySQL binlog_expire_logs_seconds 不起作用

我已使用SET GLOBAL binlog_expire_logs_seconds = 259200;查询配置数据库以清除 3 天之前的二进制日志。使用 MySQL 8.0.22。这似乎没有任何影响。bin 日志在 /var/lib/mysq/dbname-bin.000xx 文件下累积。执行

PURGE BINARY LOGS BEFORE '2020-.......' 
Run Code Online (Sandbox Code Playgroud)

有效,但我希望数据库引擎自行清除这些日志,而无需自己调用它。否则二进制日志会占用大部分磁盘空间。请建议。

mysql binary-log

4
推荐指数
1
解决办法
1670
查看次数