2017-09-04 15 views
6

Mam problem z odtwarzaczem muzyki, większość piosenek daje błądBłąd MPMusicPlayer Domena = MPErrorDomain Code = 4?

błąd Domain = kod MPErrorDomain = 4

Urządzenie kontrolne posiada subskrypcję muzyczny Apple i utworów daje błąd w aplikacji działają dobrze w aplikacji muzycznej Apple!

Oto kod:

let applicationMusicPlayer = MPMusicPlayerController.systemMusicPlayer() 
applicationMusicPlayer.setQueueWithStoreIDs([ID]) 

     if #available(iOS 10.1, *) 
     { 

     applicationMusicPlayer.prepareToPlay { (error) in 

      if (error != nil) 
      { 
       print("[MUSIC PLAYER] Error preparing : \(String(describing: error))") 
       return 
      }else 
      { 
       self.start_timer(); 
       self.applicationMusicPlayer.play() 
      } 

     } 

     }else 
     //Play directly ios below version 10.1 
     { 
     self.applicationMusicPlayer.play() 
     } 

    } 

Ale co próbowałem, kiedy tor daje ten błąd, poszedłem do odtwarzacza muzyki firmy Apple i grał go stamtąd jego pracował, a potem wróciłem do mojego Aplikacja i grać z mojej aplikacji działa również dobrze, więc muszę iść do aplikacji muzycznej Apple, aby odtwarzać utwory nie odtwarzane w mojej aplikacji, aby mogły działać w mojej aplikacji! To takie dziwne, dlaczego?

PS: urządzenie testujące ma Jabłko subskrypcji muzyki

+0

Czy utwory, które powodują błąd, zostały pobrane na urządzenie? Czy są one w bibliotece użytkowników, ale nie są pobierane do telefonu? –

+0

@MicahWilson utwory ze zdalnego interfejsu API, udostępniają utwory Apple z epf_id <- Identyfikator sklepu w Apple, niektóre z nich działają, a większość z nich nie daje błędu powyżej – Jack

+0

Ale kiedy idę do muzyki Apple i odtwarzam ją stamtąd grałem, potem wróciliśmy do aplikacji i odtwarzaliśmy ją z mojej aplikacji, gra też bezbłędnie. – Jack

Odpowiedz

6

miałem kilka podobnych problemów podczas dodawania utworów do listy odtwarzania, rozwiązać go za pomocą:

DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5)) { 
    // Code 
} 

chciałbym pobawić się czekając trochę wcześniej lub po przygotowaniu.

5 sekund może być za dużo, ale możesz zacząć od tego

Powiązane problemy