Android hrají syrový zvuk z C ++ strany

hlasů
2

Musím být schopen přenášet zvuk z vlastní formát souboru na C ++ straně systému Android. Já jsem pracoval na portování vlastní multimediální přehrávač a je třeba, aby bylo možné otevřít vlastní soubor a streamování audia z něj. To je důležité, protože si nemyslím, portování celý přehrávač Java je to proveditelné z výkonu stánku bodu a pohybuje audio vyrovnávací paměti prostřednictvím rozhraní JNI věřím, bude příliš pomalý, aby slušný počet snímků za sekundu. Zvládnu video na straně NDK přes OpenGL ES, ale Audio nemám ponětí, jak se to stalo.

Položena 22/02/2010 v 17:55
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Doporučuji vám projít zvuk přes JNI a uvidíte, jak to skutečně provádí. Zjistil jsem, že JNI je vlastně docela efektivní (pokud jsou správně používány) a by neměl být překvapen, pokud to je více než dost rychle na to, co budete potřebovat.

Jen poznámka k realizaci, to nechápu Java vytvořit nárazníkové pokaždé, když chcete přenést zvuk prostřednictvím, jednoduše vytvořit buffer v Javě (nebo přes JNI) a poté memcpy do ní pokaždé, když je třeba aktualizovat.

Také, měli byste si uvědomit, že všechny audio tříd na Android jsou v současné době napsán v jazyce C ++ a běh přes JNI. Pokud jeho dost rychle jít jedna cesta (Jsem v současné době pracuje na hře, kde můžeme předložit více než 0,5 MB audio dat z Jávy do AudioTrack v některých snímků bez problémů), pak to asi nebude tak špatné, aby přejít zbývající pak považují za v podstatě stejné operace, tj vyrovnávací paměti zámku, psát, odemknout jít do audio a zámek vyrovnávací paměti, číst odemknout v audio tříd.

Odpovězeno 10/09/2010 v 17:34
zdroj uživatelem

hlasů
1

NDK nepodporuje přehrávání zvukových snímků v současné době. Budete muset použít java AudioTrack API k dosažení tohoto cíle.

Odpovězeno 07/03/2010 v 16:07
zdroj uživatelem

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