Преобразуйте аудиопоток в массив байтов WAV в Java без временного файла

Это невозможно в общем случае, если не разрешено 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

9
задан Robert J. Walker 13 October 2008 в 19:07
поделиться

1 ответ

Проблема состоит в том, что большая часть AudioFileWriters должна знать размер файла заранее при записи в OutputStream. Поскольку Вы не можете обеспечить это, это всегда перестало работать. Unfortunatly, Java по умолчанию звучит, реализация API не имеет никаких альтернатив.

Но можно попытаться использовать архитектуру AudioOutputStream от плагинов Tritonus (Tritonus является реализацией с открытым исходным кодом звука Java API): http://tritonus.org/plugins.html

7
ответ дан 4 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: