Domanda

Voglio inviare il buffer audio non elaborato a c ++ per la transcodifica audio. Ho due opzioni

  1. utilizzando lo stream di piping
    • utilizzando buffer diretti (java.nio)

Queste sono davvero le mie 2 migliori opzioni (e quali consiglierebbero le persone?) Grazie!

È stato utile?

Soluzione

I buffer diretti in NIO avranno quasi certamente prestazioni migliori. Questo è praticamente il caso ideale per i buffer diretti.

Non sono sicuro di quale sia il punto della tua domanda: se vuoi sapere se ci sono altre opzioni, la risposta è sicuramente ancora (potresti, ad esempio, scrivere su un file e invocare un'applicazione esterna su elaboralo - o potresti usare JNI senza buffer diretti). Ma se vuoi un'interfaccia strettamente accoppiata e altamente performante tra codice Java e C ++, JNI insieme ai buffer diretti, sarà lo strumento da usare.

Altri suggerimenti

JNI è facile da rovinare, quindi le persone tendono a lamentarsene. Ma è un'opzione eccellente ed estremamente stabile, se eseguita correttamente.

È possibile utilizzare socket (che accetta la connessione da locale) ma sarà più efficace sui sistemi * nix, immagino.

Se non hai bisogno della transcodifica in tempo reale, sceglierei l'approccio buffer. In questo modo avrai un controllo migliore e sarai sicuro che nessun byte verrà perso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top