2016-08-10 2 views
0

xamarin iOS에서 AVPlayerLayer 및 AVPlayerViewControler를 사용하여 비디오를 재생하는 방법은 무엇입니까?xamarin iOS에서 AVPlayerViewController (AVKit)로 비디오를 재생하는 방법

playerItem = new AVPlayerItem(new NSUrl("https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")); 
     player = new AVPlayer(playerItem); 
     AVcontroller.Player = player; 
     AVcontroller.View.Layer.Frame = this.View.Bounds; 
     this.View.AddSubview(AVcontroller.View); 
     //AVcontroller.SetFullscreen(true, true); 
     AVcontroller.Player.Play(); 
+1

https://developer.xamarin.com/recipes/ios/media/video_and_photos/play_a_video_using_avplayer/ – Krumelur

답변

2
AVPlayer avp; 
AVPlayerViewController avpvc; 


var url = NSUrl.FromString(yourURL); 
      avp = new AVPlayer(url); 
      avpvc = new AVPlayerViewController(); 
      avpvc.Player = avp; 
      AddChildViewController(avpvc); 
      View.AddSubview(avpvc.View); 
      avpvc.View.Frame = View.Frame; 
      avpvc.ShowsPlaybackControls = true; 
      avp.Play(); 

이것은 모두 viewDidLoad에서 완료되며 이제는 정상적으로 작동합니다.

3

코드처럼, 그들 중 하나를 선택 비디오를 재생하는 방법은 두 가지가 있습니다 :

public override void ViewDidLoad() 
    { 
     //Set the movie file path 
     string moviePath = NSBundle.MainBundle.PathForResource ("loadingAnimation", "mov"); 
     NSUrl movieUrl = NSUrl.FromFilename (moviePath); 

     //Using MPMoviePlayerController(using MediaPlayer) 
     MPMoviePlayerController mpC = new MPMoviePlayerController (movieUrl); 
     mpC.ControlStyle = MPMovieControlStyle.None; 
     mpC.View.Frame = new CGRect (50, 50, 200, 200); 
     mpC.View.BackgroundColor = UIColor.Clear; 
     mpC.ShouldAutoplay = true; 
     this.Add (mpC.View); 
     mpC.Play(); 

     //Using AVPlayer(using AVFoundation) 
     AVPlayer avPlayer; 
     AVPlayerLayer playerLayer; 
     AVAsset asset; 
     AVPlayerItem playerItem; 
     asset = AVAsset.FromUrl (movieUrl); 
     playerItem = new AVPlayerItem (asset); 
     avPlayer = new AVPlayer (playerItem); 
     playerLayer = AVPlayerLayer.FromPlayer (avPlayer); 
     playerLayer.Frame = new CGRect (50, 300, 200, 200); 
     View.Layer.AddSublayer (playerLayer); 
     avPlayer.Play(); 
    } 

가 당신을 도울 수 있기를 바랍니다.

+0

지원해 주셔서 감사합니다. 하지만 난 AVPlayerLayer 및 AVPlayerViewController를 사용하고 싶습니다. –

+0

무슨 뜻인지 모르겠다. 내 대답에는 AVPlayer 샘플이 있지만, 당신이 그것을 만들었 기 때문에 기쁘다. –

+0

실제로 AVPlayer 및 AVPlayerController와 다르지 않은 AVPlayerController는 단지 AVViewlayer를 포함하는 UIViewController입니다. –

관련 문제