OpenSL ES [Dúvidas, sugestões, opniões]

Olá Amigos,

venho estudando o Android à algum tempo e tenho alcançado ótimos resultados com a tecnologia. Estou diante de mais um novo desafio e a plataforma tem me dado um pouco de dor de cabeça nesse novo cenário. A minha solução envolve tratamento de áudio e eu não estou obtendo bons resultados. Já fiz uso das [size=18]API’s AudioTrack de AudioRecorder do Android[/size] e por conta do [size=18]AudioFlinger do Android [/size], obtive péssimos resultados relacionados a latência da aplicação. [size=18] Preciso implementar um loop entre o microfone e o alto falante do celular, ou seja, preciso ouvir (no menor período de tempo possível) tudo aquilo que capto pelo microfone (obtive 240 milisegundos nos meus protótipos)[/size]. Lí coisas horríveis sobre o tratamento de áudio do Android e vinha pesquisando uma nova alternativa para o problema, foi quando cheguei ao [size=18] OpenSL ES [/size] , que me parece ser uma tentativa desesperada da Google (por ter abandonado literalmente as API’s existentes ao invés de otimiza-las) para contornar esse problema crônico. O OpenSL é uma ferramenta de Áudio Nativa e que deve ser implementada em C++. Baixei o NDK do Android, que por sinal facilita bastante o desenvolvimento e integração dessas rotinas nativas com o Java e instalei uma ROM customizada com a versão 2.3 do Android (o OpenSL ES só está disponível a partir dessa versão). Todo o ambiente foi devidamente configurado e [size=18] rodei alguns exemplos do NDK (inclusive o Native-Audio, que se enquadra melhor no meu contexto). Mas, tenho encontrado pouquíssimos materiais na Rede, me parece que a comunidade não tem usado ou compartilhado muito os conhecimentos com a nova ferramenta[/size]… enfim. Queria saber de vocês, antes de mais nada, se eu estou errado com relação a minha visão. Será que estou procurando suporte nos locais errados? Tenho me prendido bastante a documentação do OpenSL ES (mais de 600 páginas!! :shock: ) e os meus passos têm sido bem pequenos. [size=18] Você já viram nesse mundão algum exemplo do OpenSL em LoopBack (microfone e alto falante)?? Alguém já usou na prática?? Obteve realmente bons resultados??? Conto com a ajuda de vocês! [/size]

Forte abraço.

Claro que sim , agora seja criativo e saiba o que fazer

???

De qualquer forma, valeu pela orientação! :slight_smile:

Não sei se ajuda, mas o Android 4.0 veio com uma novidade a esse respeito:

“To support this low-level streaming, the platform introduces a new native API based on Khronos OpenMAX AL 1.0.1. The API is implemented on the same underlying services as the platform?s existing OpenSL ES API, so developers can make use of both APIs together if needed. Tools support for low-level streaming multimedia will be available in an upcoming release of the Android NDK”

Abs

[quote=andreban]Não sei se ajuda, mas o Android 4.0 veio com uma novidade a esse respeito:

“To support this low-level streaming, the platform introduces a new native API based on Khronos OpenMAX AL 1.0.1. The API is implemented on the same underlying services as the platform?s existing OpenSL ES API, so developers can make use of both APIs together if needed. Tools support for low-level streaming multimedia will be available in an upcoming release of the Android NDK”

Abs[/quote]

Hummmmm andreban,

o problema é crônico, isso é um fato inquestionável. Com o desenrolar dessas sopas de versões do Android, acho que teremos um tratamento de qualidade com o áudio no Android.

O Android 4.0 já inviabiliza minha solução por conta da baixa popularidade da versão. Tentarei algo com o OpenSL ES na 2.3 e caso eu obtenha sucesso, compartilharei aqui no forum a respeito do assunto.

De qualquer forma, muito obrigado mesmo pela informação. :slight_smile: