ios - 在 xamarin.ios 上播放和设置视频控件(如播放、暂停、停止、音量和搜索栏)的最佳方式是什么
问题描述
在 xamarin.ios 上播放和设置视频控件(如播放、暂停、停止、音量和搜索栏)的最佳方式是什么。
解决方案
实际上,有很多解决方案可以实现它。像MPMoviePlayerController,<strong>MPMoviePlayerViewController,<strong>AVPlayer,<strong>AVPlayerViewController...
注意:MPMoviePlayerController和MPMoviePlayerViewController在 iOS 9.0 之后已经过时。
以下代码是AVPlayer的基本用法
在方法中ViewDidLoad
//Set the local movie file path
//string moviePath = NSBundle.MainBundle.PathForResource("xxx", "mp4");
//NSUrl movieUrl = NSUrl.FromFilename(moviePath);
//set remote url path
NSUrl movieUrl = new NSUrl("https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4");
//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();
// you can add button and slider to control the play, pause , seek and volume
avPlayer.Pause();
avPlayer.Seek();
avPlayer.Volume = xxx;
这样就需要自己定义Control Element的UI了。
如果 url 总是 remote ,我们也可以在WKWebView中打开 url 。它默认实现了暂停和搜索功能。
//set remote url path
NSUrl movieUrl = new NSUrl("https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4");
var webView = new WKWebView(View.Frame, new WKWebViewConfiguration());
Add(webView);
using (var request = NSUrlRequest.FromUrl(movieUrl))
{
webView.LoadRequest(request);
}
推荐阅读
- mdbootstrap - Fontawesome 在 mdbootstrap 和 rails 中不起作用
- python - Pandas df.sum() 仅创建 0
- php - Laravel,当使用 Eloquent 检索数据分页和获取方法时返回不同的输出
- c++ - 获取c++中每一行代码的执行时间
- php - 从 PHP 调用 python 脚本 - 并行请求问题
- jquery - 使用 ajax 更新数据库后重新加载页面
- ios - 尝试从左上角缩放视图
- python - 自定义序列化程序中的字段.Serializer
- python - 如何使用百分位数过滤数据框以过滤异常值?
- c++ - 如何将批处理文件的输出读入 C++ 中的字符串