2012-04-27 8 views
9

Ok, więc rozejrzałem się po większości innych problemów, z jakimi ludzie stykają się z vimeo i nie sądzę, żeby trafili na ten sam problem, który otrzymywałem.Filmy wideo Vimeo nie grają na iPadzie UIWebView

Po otwarciu filmu wideo vimeo w aplikacji Safari na moim iPhonie i iPadzie, oba działają bez problemu.

Teraz stworzyłem aplikację na iPhone, która ma interfejs UIWebView i ładuje wideo odtwarzacza vimeo, co też działa dobrze.

Problem polega na tym, że jeśli teraz zainstaluję tę samą aplikację na moim iPadzie, odtwarzacz vimeo nie chce załadować wideo, po prostu się zawiesza, a spinner wciąż się kręci, ale wideo nie ładuje się.

Jednak po tym, co zrobiłem, stworzyłem podstawową aplikację, która ładuje URL odtwarzacza vimeo w UIWebView jako natywną aplikację na iPada, a nie aplikację na iPhone'a, której rozmiar jest zmieniany lub "2x" na iPada. O dziwo, wszystko działało dobrze.

Teraz jestem zdezorientowany ... dlaczego iPad nie odtwarza wideo vimeo, jeśli nie ma aplikacji zaprojektowanej dla iPada? Czy za kulisami pojawia się jakaś magia, która może to przełamać?

jestem ze stratą tutaj, każda pomoc będzie mile widziane

+0

Zdaję sobie sprawę, że to pytanie ma wiele lat, ale jeśli ktoś natknie się na to teraz: jakie wersje iOS są zainstalowane na tych urządzeniach? Występują problemy z Vimeo na iOS 9. – Richard

+0

W chwili pisania tego pytania aplikacje używały iOS5 – Jason

Odpowiedz

1

Wdrożenie metody Delegat: shouldStartLoadWithRequest wówczas ta metoda tylko wykryje, czy żądana URL typu VIDEO jeżeli jest następnie należy wykonać kod podany w linku poniżej, który pracował dla mnie:

Playing a video file from server in an Iphone app

To będzie dobry w graniu dowolnego pliku wideo.

1

Problem jest prawdopodobnie związany z agentem użytkownika, który różni się od tego w przeglądarce Safari na urządzeniach Apple: UIWebView wysyła nieprawidłowy ciąg powodujący przerwanie Vimeo (i czasem YouTube).

Luckly, masz prawo do zastąpienia agenta użytkownika aplikacji stosując następujący (C#, daj mi znać, jeśli nie wystarczająco czysty):

NSDictionary dictionary = NSDictionary.FromObjectAndKey(new NSString("Mozilla/5.0 (" + (UIDevice.CurrentDevice.Model.Contains("iPad") ? "iPad" : "iPhone") + "; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"), new NSString("UserAgent")); 
NSUserDefaults.StandardUserDefaults.RegisterDefaults(dictionary); 

To sprawia, że ​​filmy grać dobrze.

+0

Dzięki za odpowiedź, niestety nie mam czasu, aby przetestować to sam teraz, ale jeśli ktoś inny może komentować to jest właściwe rozwiązanie, które zaznaczę twoją odpowiedź jako poprawną. – Jason