2010-06-08 13 views
7

Ho un'app che funziona dalla versione 2.0 dell'SDK in cui creo e aggiungo un UIWebView e quindi carico l'URL di un .mov per riprodurre un film. Fin dalla prima versione della beta 4.0 fino alla 4.0 GM questo ha smesso di funzionare. Quando ho caricare un filmato ora ottengo il seguente errore:: Plug-in carico movimentato" e il film non mostraRiproduzione di video in UIWebView interrotta in iOS4?

Si tratta di un problema noto Sto facendo qualcosa di sbagliato in 4,0

+0

Per chiunque abbia questo problema: Questo è un bug non documentato che interrompe le app esistenti. C'è una semplice soluzione qui sotto, ma per favore anche [file un bug report] (https://bugreport.apple.com/) per aumentare la probabilità che Apple lo risolva. – cduhn

risposta

4

ho pensato che questo.?? Sembra essere un problema con iOS4 che non è retrocompatibile con un UIWebView creato con 'init' piuttosto che con 'initWithFrame'. In 2.0 - 3.1.3, puoi mostrare il video in un UIWebview a schermo intero. è il motivo per cui non ha importanza se hai chiamato "init" - il giocatore del film entrava e usciva a schermo intero.Tuttavia, nella versione 3.2 e successiva puoi ora inserire video in un UIWebView, quindi devi chiamare initWithFrame e dargli qualcosa come [[UIScreen mainScreen] bounds] quindi c'è una vista visibile.Non sono sicuro se questo è toro o meno, ma sembra essere il caso

+0

Per essere un po 'più preciso, il video verrà riprodotto solo se il frame di UIWebView ha un'area diversa da zero. Ho avuto lo stesso problema con una UIWebView creata usando '[[UIWebView alloc] initWithFrame: CGRectZero]'. Questo è particolarmente strano, dal momento che la webview non ha realmente bisogno di essere visibile. Il video verrà riprodotto anche se la WebView non viene mai aggiunta alla gerarchia della vista, a condizione che la sua cornice sia diversa da zero. – cduhn

+0

Questo è corretto. Anche se chiami il numero [[UIWebView allow] initWithFrame:CGRectMake(0,0,1,1)], il video verrà visualizzato correttamente e quando fai clic su "Fine", UIWebView "apparirà" per essere stato rimosso. Altrimenti, non sono sicuro se c'è un modo per rilevare se il video è finito in modo da poter nascondere/rimuovere UIWebView. Altrimenti, vedi una UIWebView bianca con un'icona di riproduzione nel mezzo. – rforte

+0

Pensavo di essere l'unico con questo problema. Ma anche con questa soluzione alternativa non funziona per me. Sto già facendo initWithFrame ma ottengo un avvisoView "Questo film non può essere riprodotto" in 3.2 e versioni precedenti funziona bene. Solo 4.0 non lo fa – scud

1

Ho una situazione di "questo film non può essere riprodotto" durante la riproduzione di un video. Questo è successo quando il registratore è stato appena usato. E questo NON accadrà quando il giocatore è stato appena usato.

Quindi ho impostato la categoria di sessione audio su kAudioSessionCategory_AmbientSound al termine del registratore.

Questo problema è stato risolto dopo averlo fatto.

0

Almeno nel ChildBrowser di PhoneGap, il metodo didFailLoadWithError gestisce e visualizza questo messaggio. Semplicemente non visualizzare l'errore, problema risolto, ma in questo caso specifico ci sono due pulsanti 'fatti' da premere prima di tornare all'applicazione.

0

Basta semplicemente ignorarlo. Nessun danno nel farlo.

if (![error.localizedDescription isEqualToString:@"Plug-in handled load"])