许多闹钟应用程序在几个小时后设法在锁定屏幕的情况下播放声音(例如:起床、挥手闹钟)
您所需要做的就是设置闹钟并在应用程序打开时锁定屏幕,闹钟将在屏幕锁定后数小时响起。
我设法弄清楚如何在设备锁定时使用 AVPlayer 播放音频:
将背景功能设置为音频
将“应用程序不在后台运行”设置为“是”
代码:
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 运行应用程序时却没有,顺便说一句)
这些闹钟应用程序如何设法延迟音频?
当我尝试进入以太坊编程时,我目前正在关注本教程(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进行了尝试,所以我想这与松露有关吗?
我有一个长时间运行的 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 刷新?
我有一个 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?