AVPlayer 控件无法正常工作
AVPlayer Controls not working properly
我一直在尝试实现 AVPlayer,但我发现了一些问题。首先,在演示 (https://developer.xamarin.com/recipes/ios/media/video_and_photos/play_a_video_using_avplayer/) 中没有控件...这正常吗?默认情况下应启用控件(苹果文档)
在我的应用程序中,我覆盖了 AVPlayerViewController class 并且控件在横向上可见但在视频后面。所以大部分滑块是不可见的。这很奇怪。此外,在播放时,按钮暂停实际上是按钮播放并且被禁用。点击全屏显示全屏视图,我可以听到视频播放但只有黑屏。以下是我创建视频播放器的方式:
此代码位于 AVPlayerViewController 的子class 中,我将其框架设置为父框架。它似乎工作正常,除了控制部分
playerItem = new AVPlayerItem (new NSUrl(url));
player = new AVPlayer (playerItem);
playerLayer = AVPlayerLayer.FromPlayer (player);
playerLayer.Frame = View.Bounds;
View.Layer.AddSublayer (playerLayer);
有人以前看过这个吗?
这对我有用,如果你继承 AVPlayerViewController 它已经有了 Player 属性 所以你不需要再创建一个。
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();
}
}
}
让我知道这是否适合你。
我一直在尝试实现 AVPlayer,但我发现了一些问题。首先,在演示 (https://developer.xamarin.com/recipes/ios/media/video_and_photos/play_a_video_using_avplayer/) 中没有控件...这正常吗?默认情况下应启用控件(苹果文档)
在我的应用程序中,我覆盖了 AVPlayerViewController class 并且控件在横向上可见但在视频后面。所以大部分滑块是不可见的。这很奇怪。此外,在播放时,按钮暂停实际上是按钮播放并且被禁用。点击全屏显示全屏视图,我可以听到视频播放但只有黑屏。以下是我创建视频播放器的方式:
此代码位于 AVPlayerViewController 的子class 中,我将其框架设置为父框架。它似乎工作正常,除了控制部分
playerItem = new AVPlayerItem (new NSUrl(url));
player = new AVPlayer (playerItem);
playerLayer = AVPlayerLayer.FromPlayer (player);
playerLayer.Frame = View.Bounds;
View.Layer.AddSublayer (playerLayer);
有人以前看过这个吗?
这对我有用,如果你继承 AVPlayerViewController 它已经有了 Player 属性 所以你不需要再创建一个。
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();
}
}
}
让我知道这是否适合你。