Если вы находитесь на узле.js, вы можете взглянуть на волокна - родное расширение C на узел, своеобразное многопоточное моделирование.
It позволяет сделать реальный sleep
таким образом, который блокирует выполнение в волокне, но он не блокируется в основном потоке и других волокнах.
Вот пример из собственного readme:
// sleep.js
var Fiber = require('fibers');
function sleep(ms) {
var fiber = Fiber.current;
setTimeout(function() {
fiber.run();
}, ms);
Fiber.yield();
}
Fiber(function() {
console.log('wait... ' + new Date);
sleep(1000);
console.log('ok... ' + new Date);
}).run();
console.log('back in main');
- и результаты:
$ node sleep.js
wait... Fri Jan 21 2011 22:42:04 GMT+0900 (JST)
back in main
ok... Fri Jan 21 2011 22:42:05 GMT+0900 (JST)
Регулировка громкости влево / вправо для системы / пользователя недоступна в общедоступном API. Это доступно только на уровне приложения, используя методы, о которых вы упомянули.
Вы можете установить правый и левый громкость с помощью этого 2-го и 3-го параметров: SoundPool, developer.android.com