2013-02-08 11 views
5

PróbowałemJakie jest lepsze podejście do odtwarzania mp3/wav i zmiany tempa (prędkość dźwięku) Androida?

1) MediaPlayer(it Doesnt support speed change). 
2) SoundPool (play only small audio files) 
3) AudioTrack (tried with JLayer- there is delay. decoder is slow). 
4) Sonic NDK master - unable to play mp3 audio files 

co byłoby lepsze w użyciu? jakiś pomysł lub sugestie? Jak powinienem podejść?

+0

NB: MediaPlayer obsługuje prędkość dźwięku na API23 + –

Odpowiedz

3

Trochę informacji z mojego doświadczenia. OpenSL ES to kolejna opcja. Jest to biblioteka C++, więc będziesz musiał użyć Android NDK. Nie mogłem uruchomić tej metody, ponieważ z jakiegoś powodu otrzymywałem komunikat o błędzie, który stwierdził, że interfejs nie był obsługiwany, mimo że w dokumentacji jest napisane, że jest to http://mobilepearls.com/labs/native-android-api/ndk/docs/opensles/.

Inną opcją jest użycie http://www.surina.net/soundtouch/, która jest świetną biblioteką C++, która może być używana z Androidem NDK i ma świetne wsparcie od programisty Olli.

W odniesieniu do innych metod zostały wymienione:

  • MediaPlayer po prostu nie będzie działać
  • Soundpool jest bardzo ograniczona ze względu na to tylko pracy z małych plików
  • AudioTrack wydaje się być najlepszym rozwiązaniem ale odtwarza tylko pliki PCM, więc może być wymagana konwersja plików MP3.
Powiązane problemy