5

Projektuję aplikację muzyczną, która odtwarza muzykę z biblioteki muzycznej użytkownika iPhone'a i mam problem z ustaleniem, który odtwarzacz audio jest odpowiedni (AVAudioPlayer, AVPlayer lub MPMusicPlayer).iPhone - Jaki odtwarzacz audio jest odpowiedni dla mojej aplikacji?

Moja aplikacja musi wykonać następujące czynności:

  • odtwarzać muzykę z biblioteki muzycznej iPhone
  • Kontrola głośności aplikacja muzyka niezależnie od objętości urządzenia/systemu
  • Dalej Play Music podczas porusza aplikacji do tło
  • wydarzenia połowowe podczas zmiany utworu do następnego utworu lub kończy

Z moich badań Wygląda na to, że każdy z trzech wspomnianych wyżej odtwarzaczy audio wykonuje NIEKTÓRE z zadań wymaganych dla mojej aplikacji, ale żaden z nich nie wykonuje WSZYSTKICH z nich. AVPlayer wydaje się być najbliższy, z wyjątkiem tego, że jego głośność zależy od woluminu urządzenie/system.

Czy ktoś ma jakieś zalecenia lub obejścia, aby to osiągnąć? Od jakiegoś czasu dręczyłem mój mózg, więc wszelka pomoc będzie doceniona.

Odpowiedz

1

EDIT

Klasa MPMusicPlayerController faktycznie nie obsługuje odtwarzania dźwięku tła, gdy coraz wystąpienie nim poprzez + applicationMusicPlayer. Najlepszym rozwiązaniem jest po prostu użycie MPMusicPlayer do zapytania biblioteki muzycznej iPoda. Po wybraniu utworu przez użytkownika, wynikowy MPMediaItem może zostać zapytany o adres URL zasobu i przekazany do AVPlayer'a o nazwie +playerWithURL, co daje pełną kontrolę nad parametrami odtwarzania.

-

Polecam MPMusicPlayerController.

  1. MPMusicPlayerController obsługuje szczegóły niskiego poziomu odtwarzania plików audio w bibliotece iTunes. Aby uzyskać lokalną kopię iPoda singleton, można użyć metody klasy -applicationMusicPlayer. stamtąd możesz kontrolować jego głośność, ustawiając właściwość volume tylko dla swojej aplikacji.
  2. Przypuszczam MPMusicPlayerController obsługuje dźwięku tła już zbudowany. Jeśli tak nie jest, można zmienić dźwięku kontekst sesji swojej aplikacji, aby to działało (patrz Playing background audio w http://www.sagorin.org/2011/11/29/ios-playing-audio-in-background-audio/)
  3. Można skonfigurować dowolny przedmiot wybierzesz być obserwatorem KVO twojego specyficznego dla aplikacji obiektu MPMusicPlayerController. W ten sposób możesz otrzymywać powiadomienia o każdej zmianie właściwości nowPlayingItem.

Mam nadzieję, że ten opis na wysokim poziomie jest wystarczający. Daj mi znać, jeśli potrzebujesz dalszych wyjaśnień.

+0

i może sprawdź kod przykładowy AddMusic Apple'a – amergin

+0

To wszystko brzmi poprawnie, ale metoda appmusicplayer MPMusicPlayer nie obsługuje dźwięku, gdy aplikacja przenosi się do tła, a w linku podanym jako przykład używa AVPlayer, więc jestem nie wiesz, czy sesja audio w tle będzie działać z appmusicplayer. Propozycje? – Matt

+0

Cześć Matt. Moje przeprosiny za brakujące dokumenty na ten temat.Następną najlepszą rzeczą do zrobienia, może być użycie MPMusicPlayer do uzyskania dostępu do biblioteki iPoda i zapytania o nią. Po wybraniu utworu możesz uzyskać jego URL za pośrednictwem właściwości 'MPMediaItemPropertyAssetURL' (z klasy' MPMediaItem') i podać ten URL do metody '+ playerWithURL' AVPlayera. Stamtąd po prostu korzystasz z AVPlayera, aby faktycznie odtwarzać utwór. To powinno dać ci szczegółową kontrolę nad odtwarzaniem, jednocześnie mając dostęp do biblioteki iPoda. –

Powiązane problemy