2015-04-16 10 views
6

il seguente codice nel Xamarin per iOS stava funzionando benissimo prima della Xamarin per l'aggiornamento iOS per v2.0.50727Riproduzione di un video con Xamarin per iOS rotti dopo ultimo aggiornamento

Questo è il codice in un renderer personalizzato in un Xamarin forme App

class WatchVideoRenderer : PageRenderer 
{ 
    MPMoviePlayerController moviePlayer; 

    protected override void OnElementChanged(VisualElementChangedEventArgs e) 
    { 
     base.OnElementChanged(e); 

     var url = new NSUrl("http://192.168.12.4:8085/MediaUploads/1/211/520140731170618/DPM202.mp4"); 
     moviePlayer = new MPMoviePlayerController(); 
     moviePlayer.ContentUrl = url; 
     moviePlayer.View.Frame = new CGRect((float)((NativeView.Bounds.Width - 600)/2), (float)((NativeView.Bounds.Height - 450)/2), 600, 400); 

     MPMoviePlayerController.Notifications.ObserveLoadStateDidChange(OnLoadStateChanged); 
     MPMoviePlayerController.Notifications.ObservePlaybackDidFinish(OnPlaybackComplete); 

     View.AddSubview(moviePlayer.View); 

     moviePlayer.PrepareToPlay(); 
     moviePlayer.ShouldAutoplay = true; 
     moviePlayer.Play(); 
    } 

    private void OnLoadStateChanged(object sender, NSNotificationEventArgs e) 
    { 
     if (moviePlayer.LoadState == MPMovieLoadState.Playable) 
     { 

     } 
    } 

    private void OnPlaybackComplete(object sender, MPMoviePlayerFinishedEventArgs e) 
    { 

    } 
} 

Come ho detto questo stava lavorando fino al giorno prima di ieri, dopo che ho installato 2 aggiornamenti su Xamarin. iOS & questo ora sta fallendo. Tutto quello che vedo è una tela nera & il video non viene mai caricato. Nessuna notifica da parte di MPMoviePlayerController viene mai generata. C'è una versione di questa app in programma per la prossima settimana & questo bug dell'ultimo minuto mi sta causando mal di testa. Qualsiasi aiuto è molto apprezzato.

+0

Ecco un esempio di codice, se qualcuno volesse mettere alla prova nella propria configurazione https://github.com/supreettare/moviePlayerDemo si prega di modificare l'URL del file video in WatchVideoRenderer nel progetto di iOS. – Supreet

+0

Sei riuscito a risolvere questo? – codinghands

+0

Sì, questo è stato risolto utilizzando gli ultimi bit di Xamarin. Nessuna modifica nel codice. – Supreet

risposta

0

Ho risolto un problema simile spingendo un nuovo contesto di immagine e questo ha fatto il trucco. Ho modificato il codice per includere BeginImageContext() e EndImageContext().

UIGraphics.BeginImageContext(new CGSize(1,1)); 
var url = new NSUrl("http://192.168.12.4:8085/MediaUploads/1/211/520140731170618/DPM202.mp4"); 
moviePlayer = new MPMoviePlayerController(); 
moviePlayer.ContentUrl = url; 
moviePlayer.View.Frame = new CGRect((float)((NativeView.Bounds.Width - 600)/2), (float)((NativeView.Bounds.Height - 450)/2), 600, 400); 
UIGraphics.EndImageContext(); 
Problemi correlati