Używam aplikacji Android Audio Effect/Equalizer API dla mojej aplikacji. Ogranicza się jednak do 5 pasm. Czy istnieje jakiś dokument/biblioteka, która pomaga dostroić więcej pasm dla lepszej implementacji korektora graficznego?Ograniczenia efektów dźwiękowych Androida do 5 pasm
Odpowiedz
To zależy od urządzenia
getNumberOfBands
wam liczbę korektor efektu. Niektóre urządzenia mają 5,8 i 13 itd.
Equalizer equalizer = new Equalizer(0,mediaplayer.getAudioSessionId());
equalizer.setEnabled(true);
equalizer.getNumberOfBands(); //it tells you the number of equalizer in device.
także rzucić okiem na this
Próbowałem tego na trzech różnych urządzeniach (Samsung, Huawei, Nexus). Wszyscy dają 5 pasm. Natomiast PowerAmp (Music Player) dostępny na playstore daje 10 pasm dla każdego urządzenia. Masz pojęcie, jak to robią? –
Przetestowałem go na różnych urządzeniach i zwraca czasem 15 i czasami 5. I nie wiem, jak PowerAmp robi to dla 10 pasm – Nepster
Liczba pasm i ich środkowych częstotliwości zależy od słuchawki. Implementacja equalizera jest wypalana w pamięci ROM.
można spróbować konieczności spróbować z sasken-player, to reimplementacja korektora, który daje 10 pasm
To pytanie było zadawane dawno temu . Oto rozwiązanie dla osób szukających odpowiedzi w przyszłości. Znalazłem tę bibliotekę dla Androida, która zapewnia 10-pasmowy korektor.
Korzystanie Androida Korektor Api na trzech różnych urządzeń I był w stanie uzyskać następujący wynik:
1) Samsung Galaxy Note 3 (5 przedziały)
2) Huawei Mate 8 (5 zakresów)
3) Nexus 5 (5 pasm)
przy użyciu biblioteki this Mogę zdobyć 10 pasm na wszystkich powyższych urządzeniach. Przetestowałem to i działa świetnie.
Dołącz bibliotekę this do swojego projektu. Użyj poniższego kodu, aby mieć korektor z 10 pasmami.
IMediaPlayerFactory mediaPlayerFactory = new OpenSLMediaPlayerFactory(getApplicationContext());
IBasicMediaPlayer mediaPlayer = mediaPlayerFactory.createMediaPlayer();
IEqualizer equalizer = mediaPlayerFactory.createHQEqualizer();
/* This returns 10 bands exactly like Poweramp music app does */
int numOfBands = equalizer.getNumberOfBands();
Ta biblioteka zawiera dokumentację, do której można się odnosić równie dobrze. Mam nadzieję że to pomoże.
Nie możesz użyć więcej niż jednej instancji korektora, aby uzyskać więcej pasm? –
Używam jednej instancji korektora dołączonej do [http://developer.android.com/reference/android/media/MediaPlayer.html#getAudioSessionId()](MediaPlayer's AudioSessionId) –
@NilsPipenbrinck: Używanie więcej niż jednego wystąpienie equalizera zostanie przekształcone na tę samą kolejną częstotliwość 5-pasmową. W takim razie, jak można mieć różną częstotliwość? Czy masz jakiś inny pomysł? –