小编Dan*_*zke的帖子

iOS:闹钟应用程序处于非活动状态后如何播放声音?

许多闹钟应用程序在几个小时后设法在锁定屏幕的情况下播放声音(例如:起床、挥手闹钟)

您所需要做的就是设置闹钟并在应用程序打开时锁定屏幕,闹钟将在屏幕锁定后数小时响起。

我设法弄清楚如何在设备锁定时使用 AVPlayer 播放音频:

  1. 将背景功能设置为音频

  2. 将“应用程序不在后台运行”设置为“是”

  3. 代码:

    do {
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
        print("AVAudioSession Category Playback OK")
    do {
        try AVAudioSession.sharedInstance().setActive(true)
        print("AVAudioSession is Active")
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    } catch let error as NSError {
        print(error.localizedDescription)
    }
    
    Run Code Online (Sandbox Code Playgroud)

当我尝试设置 NSTimer 或使用dispatch_after 运行播放音频文件并锁定 iPhone 的代码时,计时器很快停止,因为显然应用程序在几秒钟后就变得不活动(但只有当我从家里启动应用程序时)屏幕,但当我从 xcode 运行应用程序时却没有,顺便说一句)

这些闹钟应用程序如何设法延迟音频?

ios avaudiosession swift

6
推荐指数
1
解决办法
3248
查看次数

松露控制台变量声明

当我尝试进入以太坊编程时,我目前正在关注本教程(https://medium.com/zeppelin-blog/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05)。步骤3与已部署的合同进行交互。

当我进入

truffle(default)> var poe = ProofOfExistence1.deployed()
Run Code Online (Sandbox Code Playgroud)

结果是“未定义”,并且也无法与以下命令进行交互。我肯定部署了合同,因为

truffle(development)> ProofOfExistence1.deployed()
Run Code Online (Sandbox Code Playgroud)

获取输出并列出合同内的所有功能等。使用testrpc和geth testnet进行了尝试,所以我想这与松露有关吗?

ethereum solidity truffle

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

在 Javascript 函数执行期间更新 DOM

我有一个长时间运行的 Javascript 函数,看起来像这样:

window.myFunction = function() {
    for(var i=0;i<500;i++){
        // calling a function here
        document.getElementbyID('mySpan').innerHTML = "Completed step " + i + "/500"
    }
}
Run Code Online (Sandbox Code Playgroud)

我的函数经常调用另一个同步函数(我在这个例子中使用了 500),当用户等待任务完成时,我想实现类似加载栏的东西,但我在这里通过更新跨度来演示它. 每次更新跨度时是否可以强制进行某种 DOM 刷新?

javascript jquery

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

如何正确地字节移位一大块数据?

我有一个 mmap

void *mymap;
mymap = mmap(0, attr.st_size, PROT_READ|PROT_WRITE, MAPFILE|MAP_SHARED, fd, 0);
Run Code Online (Sandbox Code Playgroud)

我打开了一个 HEX 内容为 0x25362364 的文件,它是

00100101001101100010001101100100

以二进制形式。现在我想执行一个位移:

char *str = (char *)mymap;
for(int i=0;i<attr.st_size;i++) {
    str[i] = str[i] >> 4;
}
Run Code Online (Sandbox Code Playgroud)

我的新文件包含新的二进制数

00000010000000110000001000000110

但希望的结果是将所有内容向右移动 4 位:

00000010010100110110001000110110

我怎样才能做到这一点?奖金问题:如果二进制数 MSB 是 1,我怎样才能在向右移动时让左侧填充 0?

c memory-mapped-files memory-mapping

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