2015-10-16 54 views
1

我一直在试图实现AVPlayer,但我发现了一些问题。首先,在演示(https://developer.xamarin.com/recipes/ios/media/video_and_photos/play_a_video_using_avplayer/)没有控制...这是正常的吗?控制应该是默认启用(苹果文件)AVPlayer控件无法正常工作

在我的应用我重写AVPlayerViewController类和控件上的风景,但在视频后面可见。所以大部分滑块不可见。这很奇怪。而且,在播放时,按钮暂停实际上是按钮播放并被禁用。点击全屏显示全屏视图,我可以听到播放的视频,但只有黑屏。下面是我如何创建视频播放器:

这个代码是在AVPlayerViewController的一个子类,我把它的框架与父母的框架。它似乎工作正常,除了控件部分

playerItem = new AVPlayerItem (new NSUrl(url)); 
player = new AVPlayer (playerItem); 
playerLayer = AVPlayerLayer.FromPlayer (player); 
playerLayer.Frame = View.Bounds; 
View.Layer.AddSublayer (playerLayer); 

有没有人见过这个?

回答

1

这个工作对我来说,如果你是继承AVPlayerViewController将已经拥有的球员属性,因此您不必再创建一个。

using System; 
using AVFoundation; 
using AVKit; 
using Foundation; 

namespace SOText 
{ 
    public partial class ViewController : AVPlayerViewController 
    { 
     public ViewController (IntPtr handle) : base (handle) 
     { 
     } 

     public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 
      Player = new AVPlayer (NSUrl.FromFilename ("SampleVideo_320x240_1mb.3gp")); 
      AVPlayerLayer playerLayer = AVPlayerLayer.FromPlayer (Player); 
      playerLayer.Frame = View.Bounds; 
      Player.Play(); 
     } 
    } 
} 

让我知道,如果这对你有用。

+1

这个工程!谢谢:) – nhenrique

+0

任何想法如何在全屏播放视频? – nhenrique

+0

当我运行上面的代码时,它会以全屏模式播放。我认为唯一可以阻止它的是这行“playerLayer.Frame = View.Bounds;”你能够检查View.Bounds返回什么? –