převést int16_t do jbytearray

hlasů
1

Já používám Native knihovnu android pro streamování.


Zde je scénář:

Jsem předáním url k c souboru a po mnoha zpracování zapíše data do souboru wav.

Nejsem natolik obeznámen s C, ale to, co jsem mohl pochopit, je, že je ukazatel int16_t, ze kterého soubor wav je napsán.


Zde je otázka.

Existuje nějaký způsob, jak převést int16_tdo jbytearraytakže můžu vrátit bajtové pole do mého java kód?

dík

Položena 12/11/2010 v 15:43
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Já nevím, první věc, o Androidu, ale možná budete chtít podívat do java.nio.ByteBuffer- mohou být vyrobeny za účelem alokace vyrovnávací paměti v nativním ( allocateDirect()), takže nativní funkce můžete psát přímo do něj.

Odpovězeno 12/11/2010 v 16:41
zdroj uživatelem

hlasů
0

Musíte přidělit byte [] a pak zkopírovat data WAV do něj. Nebo vytvořit „přímý“ ByteBuffer která pokrývá data WAV a předat že do kódu Java.

Přečtěte si dokumentaci k JNI a JNI Tipy doc pro více informací. Zejména:

SetByteArrayRegion NewDirectByteBuffer

Odpovězeno 12/11/2010 v 23:40
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more