Poniższy kod w Xamarin dla iOS działa dobrze przed Xamarin dla aktualizacji iOS do v2.0.50727Odtwarzanie wideo z Xamarin dla iOS rozbitych po ostatniej aktualizacji
Jest to kod w niestandardowy mechanizm renderujący w Xamarin Aplikacja Forms
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)
{
}
}
Jak powiedziałem, działało to do wczoraj, po czym zainstalowałem 2 aktualizacje na Xamarinie. iOS & to już nie działa. Wszystko, co widzę, to czarne płótno & wideo nigdy się nie wczytuje. Żadne powiadomienia z MPMoviePlayerController nigdy nie zostały podniesione. Jest wydanie tej aplikacji zaplanowane na następny tydzień & ten błąd ostatniej chwili powoduje mi bóle głowy. Każda pomoc jest na prawdę doceniana.
Oto przykładowy kod, jeśli ktoś chciałby przetestować na własnej konfiguracji https://github.com/supreettare/moviePlayerDemo należy zmienić adres URL pliku wideo w WatchVideoRenderer w projekcie iOS. – Supreet
Udało ci się to rozwiązać? – codinghands
Tak, zostało to rozwiązane przy użyciu najnowszych bitów od Xamarin. Brak zmian w kodzie. – Supreet