Pregunta

Quiero enviar el búfer de audio sin formato a c ++ para la transcodificación de audio. Tengo dos opciones

  1. utilizando flujo canalizado
    • utilizando buffers directos (java.nio)

¿Estas son realmente mis 2 mejores opciones (y cuáles recomendarían las personas?) ¡Gracias!

¿Fue útil?

Solución

Los buffers directos en NIO seguramente tendrán un mejor rendimiento. Este es el caso ideal para los buffers directos.

No estoy seguro de cuál es el punto de su pregunta: si desea saber si hay otras opciones, entonces la respuesta es segura (podría, por ejemplo, escribir en un archivo y luego invocar una aplicación externa para procesarlo, o podría usar JNI sin memorias intermedias directas). Pero si desea una interfaz estrechamente acoplada y de alto rendimiento entre el código Java y C ++, JNI junto con los buffers directos, será la herramienta a utilizar.

Otros consejos

JNI es fácil de fastidiar, por lo tanto, las personas tienden a quejarse de ello. Pero es una opción excelente y extremadamente estable, cuando se hace correctamente.

Puede usar sockets (que acepten conexiones desde locales), pero supongo que será más efectivo en los sistemas * nix.

Si no necesita transcodificación en tiempo real, elegiría el enfoque de búferes. De esta forma, tendrá un mejor control y se asegurará de que no se pierda ningún byte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top