2014-09-12 14 views
14

Przeszukałem cały Internet, ale nie znalazłem wzmianki o tym błędzie.AVPlayer powoduje awarię Symulatora, ale działa poprawnie na urządzeniu

Używam AVPlayer do odtwarzania dźwięku ze zdalnego lub lokalnego adresu URL. Jednak podczas gdy na moim urządzeniu działa poprawnie, na symulatorze ulega awarii.

Dowiedziałem się, że tworzenie odtwarzacza przebiega poprawnie, ale jak tylko zadzwonię do [gra PlayerInstance], aplikacja się zawiesza.

Błąd występuje gdzieś w CommonURLAssetNotificationQueue. A punkt przerwania wyjątku wskazuje na 0x10e8a2519: pushq% rbp, co wcale nie jest pomocne.

Jednak na urządzeniu działa dobrze.

Czy to mój błąd i muszę poprawić kod? A może to po prostu działanie symulatora?

+1

Zawsze miałem również problem z odtwarzaniem plików z AVPlayer na symulatorze. Myślę, że to jest problem z symulatorem. Nigdy nie miałem z tym problemów na rzeczywistych urządzeniach. – freshking

+0

kiedy mówisz o strumieniu audio, czy oznaczasz ściśle HLS w przeciwieństwie do pliku audio znajdującego się na zdalnym serwerze? – MDB983

+0

Myślę, że miałem na myśli posypywanie jako streaming z pliku audio na zdalnym serwerze. –

Odpowiedz

36

Prawdopodobnie włączony jest punkt przerwania wyjątków. Metoda odtwarzania w AVPlayer zwykle zgłasza wyjątek, nawet jeśli nic nie jest nie tak. Wyjątek nie powoduje awarii aplikacji, a aplikacja działa dalej dokładnie tak, jak tego chcesz. Jeśli masz włączone punkty przerwania wyjątków, Xcode zauważa wyjątek i powoduje awarię aplikacji. Jeśli przejdziesz do lewego paska bocznego i wyłączysz punkt przerwania wyjątku, aplikacja będzie działać bez awarii.

+3

Masz rację! Po wyłączeniu punktów przerwania mogę wreszcie przetestować muzykę odtwarzaną w symulatorze. Dziękuję Ci! To najlepszy sposób na rozpoczęcie mojego dnia. –

+0

Uratowałeś moje godziny pracy, dzięki za to –

+0

Wow ... Good going Apple. AVPlayer zawsze zgłasza wyjątek? To słodka technika. – AnthonyM

0

Moja metoda rozwiązywania jest dodanie 'opis użycia' na stronie aplikacji Info. Ponieważ aplikacja demonstracyjna AVPlayer próbuje użyć lokalnej biblioteki zdjęć bez pytania o zgodę, powoduje to awarię aplikacji demo. Po dodaniu "Prywatność - opis użycia biblioteki zdjęć" mogę pomyślnie uruchomić tę aplikację demonstracyjną.

Powiązane problemy