Załóżmy, że mamy następujący scenariusz: coś gra na urządzeniu z Androidem (na przykład mp3), ale może to być wszystko, co używa części audio urządzenia z Androidem. Z aplikacji (aplikacja Android :)) chciałbym przechwycić strumień audio, aby go przeanalizować, nagrać itp. Z tej aplikacji (powiedzmy "analizator") nie chcę zaczynać mp3 ani czegoś , wszystko, czego chcę, to mieć dostęp do strumienia audio Androida.Jak mogę przechwycić strumień audio na urządzeniu z Androidem?
Każda rada jest doceniana, może to być rozwiązanie w języku Java lub C++.
Jestem całkiem pewien, że to nie jest możliwe, chyba że urządzenie zostało zakorzenione. Zamknięcia, które można uzyskać, to mieć nadzieję, że mikrofon jest wystarczająco czuły, aby odebrać wyjście i mieć nadzieję, że użytkownik nie ma podłączonych słuchawek! – Dave
"Logiczny" kierunek, w którym należy spojrzeć, to AudioManager.setRouting - http://developer.android.com/reference/android/media/AudioManager.html#setRouting (int, int)). Wskazuje to na dwa problemy: jeden, jest przestarzały na rzecz określonych wywołań funkcji, a drugi ma już zdefiniowaną, ograniczoną listę wyników. – MSalters
To jest niedozwolone na zabezpieczonym (typowym dla konsumenta) urządzeniu, zgodnie z projektem, chociaż można uzyskać rzadkie, niskiej jakości sygnały FFT w celu zbudowania wizualizatora graficznego. Aby uzyskać rzeczywisty dźwięk z innych aplikacji, musisz zainstalować własny widżet Androida dostosowany do swoich celów lub "zhakować" istniejącą instalację przez "rootowanie" i zmianę lub przechwytywanie komponentów systemu. –