Pergunta

Eu quero enviar o buffer de áudio bruto para c ++ para transcodificação de áudio. Eu tenho duas opções

  1. usando córrego canalizado
    • utilizando tampões directos (java.nio)

São estes realmente meus 2 melhores opções (e que as pessoas recomendam?) Obrigado!

Foi útil?

Solução

buffers diretos em NIO quase certamente terá um melhor desempenho. Isso é muito bonito o caso ideal para buffers diretos.

Eu não tenho certeza qual é o ponto da sua pergunta é - se você quer saber se existem outras opções, então a resposta é certamente ainda (você poderia, por exemplo, gravar em um arquivo, em seguida, chamar um aplicativo externo para processá-lo - ou você poderia usar JNI sem buffers diretos). Mas se você quiser uma interface fortemente acoplada, altamente performance entre Java e código C ++, JNI, juntamente com buffers diretos, vai ser a ferramenta para uso.

Outras dicas

JNI é fácil de estragar, portanto, as pessoas tendem a reclamar. Mas é uma opção excelente e extremamente estável, quando feito corretamente.

Você pode usar soquetes (que aceita ligação de local), mas que será mais eficaz em sistemas * nix, eu acho.

Se você não precisa em tempo real transcodificação, eu escolheria os buffers aproximar. Desta forma, você tem melhor controle e você vai ter a certeza de que nenhum byte está perdido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top