首页 > 解决方案 > 在 xamarin.ios 上播放和设置视频控件(如播放、暂停、停止、音量和搜索栏)的最佳方式是什么

问题描述

在 xamarin.ios 上播放和设置视频控件(如播放、暂停、停止、音量和搜索栏)的最佳方式是什么。

标签: iosxamarinxamarin.iosavplayermpmovieplayercontroller

解决方案


实际上,有很多解决方案可以实现它。像MPMoviePlayerController,<strong>MPMoviePlayerViewController,<strong>AVPlayer,<strong>AVPlayerViewController...

注意:MPMoviePlayerControllerMPMoviePlayerViewController在 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);
        }

在此处输入图像描述


推荐阅读