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.
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
Sei riuscito a risolvere questo? – codinghands
Sì, questo è stato risolto utilizzando gli ultimi bit di Xamarin. Nessuna modifica nel codice. – Supreet