2015-04-16 15 views
6

Các mã sau vào Xamarin dành cho iOS đã làm việc tốt trước khi Xamarin dành cho iOS cập nhật cho v2.0.50727Chơi một video với Xamarin dành cho iOS vỡ sau khi cập nhật mới nhất

Đây là mã trong một renderer tùy chỉnh trong một Xamarin Biểu mẫu ứng dụng

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) 
    { 

    } 
} 

Như tôi đã nói điều này làm việc cho đến ngày hôm qua, sau đó tôi đã cài đặt 2 bản cập nhật trên Xamarin. iOS & hiện không hoạt động. Tất cả những gì tôi thấy là canvas đen & video không bao giờ tải. Không có thông báo nào từ MPMoviePlayerController được nâng lên. Có bản phát hành ứng dụng này được lên lịch vào tuần tới & lỗi phút cuối cùng này đang khiến tôi đau đầu. Bất kỳ trợ giúp được thực sự đánh giá cao.

+0

Dưới đây là một số mẫu mã nếu ai đó muốn thử nghiệm trong thiết lập của riêng họ https://github.com/supreettare/moviePlayerDemo xin vui lòng thay đổi URL của tập tin video trong WatchVideoRenderer trong dự án iOS. – Supreet

+0

Bạn đã giải quyết được vấn đề này chưa? – codinghands

+0

Có, điều này đã được giải quyết bằng cách sử dụng các bit mới nhất từ ​​Xamarin. Không có thay đổi trong mã. – Supreet

Trả lời

0

Tôi đã giải quyết vấn đề tương tự bằng cách đẩy một ngữ cảnh hình ảnh mới và điều đó đã thực hiện thủ thuật. Tôi đã sửa đổi mã để bao gồm BeginImageContext() và 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(); 
Các vấn đề liên quan