Это невозможно в общем случае, если не разрешено toString
принуждение к результату вызова add
(или если количество вызовов не известно заранее):
function add(...next) {
let count = 0;
// return a callable function which, when coerced to a string,
// returns the closure's `count`:
function internalAdd(...next) {
count += next.reduce((a, b) => a + b, 0);
return internalAdd;
}
internalAdd.toString = () => count;
return internalAdd(...next);
}
console.log('' + add(1,2)) //returns 1+2= 3
console.log('' + add(1)(2,3)(4)) // returns 10
console.log('' + add(1)(2,3)(4)(5,6)(7,8,9)) //returns 45
Проблема состоит в том, что большая часть AudioFileWriters должна знать размер файла заранее при записи в OutputStream. Поскольку Вы не можете обеспечить это, это всегда перестало работать. Unfortunatly, Java по умолчанию звучит, реализация API не имеет никаких альтернатив.
Но можно попытаться использовать архитектуру AudioOutputStream от плагинов Tritonus (Tritonus является реализацией с открытым исходным кодом звука Java API): http://tritonus.org/plugins.html