Отправка данных между Java на C ++ в Windows? - PullRequest
0 голосов
/ 15 сентября 2009

Я хочу отправить необработанный аудио-буфер на c ++ для транскодирования звука. У меня есть два варианта

  1. с использованием потокового канала
    • с использованием прямых буферов (java.nio)

Это действительно мои 2 лучших варианта (и какие люди порекомендуют?)

Ответы [ 4 ]

3 голосов
/ 15 сентября 2009

JNI легко испортить, поэтому люди склонны жаловаться на это. Но это отличный и очень стабильный вариант, если все сделано правильно.

1 голос
/ 16 сентября 2009

Прямые буферы в NIO почти наверняка будут иметь лучшую производительность. Это почти идеальный случай для прямых буферов.

Я не уверен, в чем смысл вашего вопроса - если вы хотите узнать, есть ли другие варианты, тогда ответ, конечно, еще есть (вы могли бы, например, написать в файл, а затем вызвать внешнее приложение обработать его - или вы можете использовать JNI без прямых буферов). Но если вам нужен тесно связанный, высокопроизводительный интерфейс между кодом Java и C ++, JNI вместе с прямыми буферами станет инструментом для использования.

0 голосов
/ 15 сентября 2009

Если вам не нужно транскодирование в реальном времени, я бы выбрал подход с буферами. Таким образом, вы получите лучший контроль и будете уверены, что ни один байт не потерян.

0 голосов
/ 15 сентября 2009

Вы можете использовать сокеты (которые принимают подключение от локального), но это будет более эффективно в * nix системах, я думаю.

...