コード例 #1
0
 public static void SkipToNext(VideoCard vc)
 {
     if (!PlaystateManagement.MediaPlayerIsStreaming || PlaystateManagement.PlayerTypeQueued() == PlaystateManagement.PlayerType.WebViewPlayer)
     {
         SendWebViewNextVideoCommand();
     }
 }
コード例 #2
0
 public static void SkipToPrev(int id = -1)
 {
     if (PlaystateManagement.MediaPlayerIsStreaming || PlaystateManagement.PlayerTypeQueued() == PlayerType.NativeMediaPlayer)
     {
     }
     if (!PlaystateManagement.MediaPlayerIsStreaming || PlaystateManagement.WebViewPlayerIsStreaming ||
         PlaystateManagement.PlayerTypeQueued() == PlaystateManagement.PlayerType.WebViewPlayer)
     {
         try {
             if (id == -1)
             {
                 if (PlaystateManagement.GetWebViewPlayerById().CanGoBack())
                 {
                     PlaystateManagement.GetWebViewPlayerById().GoBack();
                 }
             }
             else
             {
                 if (PlaystateManagement.GetWebViewPlayerById(id).CanGoBack())
                 {
                     PlaystateManagement.GetWebViewPlayerById(id).GoBack();
                 }
             }
         }catch { }
     }
     else
     {
     }
 }
        public async void StartAwaitCallbackValueLoop(ExtWebValueCallbackListener listener)
        {
            bool loopStarted = false;

            while (((listener.ResultObject?.ToString() == "null" || listener.ResultObject?.ToString() == "true" ||
                     listener.ResultObject?.ToString() == "false") || listener.ResultObject == null) || loopStarted == false)
            {
                loopStarted = true;
                await Task.Delay(100);

                if (listener.ResultObject != null && ((ObjectType)listener.ResultObject) != ObjectType.None)
                {
                    listener.ResultObjectJava = (Java.Lang.Object)listener.ResultObject;
                    var cast = listener.ResultObject.ToString();
                    if (cast == "true")
                    {
                        _serviceWebViewPlayingList.Add(PlaystateManagement.GetWebViewPlayerById(listener.RequestObjectId, -1));
                        return;
                    }
                }

                if (listener.ResultObject != null)
                {
                    if ((ObjectType)listener.ResultObject == ObjectType.None)
                    {
                        _nullObjectCount++;
                        return;
                    }
                }
            }
        }
 public static void OnPlaystateChanged(PlaystateEventArgs e)
 {
     if (e.WebViewPlayerIdConfirmedInBackgroundIsPlaying != -1 && e.WebViewPlayerConfirmedInBackgroundIsPlaying)
     {
         PlaystateManagement.GetWebViewPlayerById(e.WebViewPlayerIdConfirmedInBackgroundIsPlaying).PlaybackShouldResumeOnMinimize = true;
         _playerIdPlayingCallbackResponseList
         .Add(new Tuple <int, bool>(e.WebViewPlayerIdConfirmedInBackgroundIsPlaying, e.WebViewPlayerConfirmedInBackgroundIsPlaying));
     }
 }
コード例 #5
0
 /// <summary>
 /// skips to the next video on a WebView tab
 /// </summary>
 /// <param name="tab"></param>
 public static void SendWebViewNextVideoCommand(int id = -1)
 {
     if (id == -1)
     {
         id = PlaystateManagement.WebViewPlayerNumberIsStreaming;
     }
     if (id != -1)
     {
         PlaystateManagement.GetWebViewPlayerById(id).LoadUrl(JavascriptCommands._jsNextVideoByASpa);
     }
 }
コード例 #6
0
        protected void OnNewIntent(Intent intent)
        {
            string url = "";

            if (intent != null)
            {
                try { url = intent.Extras.GetString("URL"); }
                catch {   }
            }
            if (url == "" || url == null)
            {
                return;
            }
            try
            {
                PlaystateManagement.GetWebViewPlayerById(-1, MainActivity.ViewPager.CurrentItem).LoadUrl(url);
            }
            catch {   }
        }
コード例 #7
0
 public void Play(int id = -1, PlayerType playerType = PlayerType.None)
 {
     if ((PlaystateManagement.MediaPlayerIsStreaming && PlaystateManagement.MediaPlayerIsQueued) ||
         playerType == PlayerType.NativeMediaPlayer)
     {
         Task.Factory.StartNew(() =>
         {
             if (MediaPlayerDictionary[id] != null)
             {
                 MediaPlayerDictionary[id].Start();
                 return;
             }
             if (MediaPlayerDictionary[id].IsPlaying)
             {
                 PlaystateChanged.Invoke(new PlaystateEventArgs(-1, false, false, false, id, false, false, false, id));
             }
         });
     }
     else if (PlaystateManagement.PlayerTypeQueued() == PlayerType.WebViewPlayer)
     {
         Task.Factory.StartNew(() =>
         {
             if (PlaystateManagement.WebViewPlayerNumberIsStreaming != -1)
             {
                 StartVideoInBkgrd(PlaystateManagement.WebViewPlayerNumberIsStreaming);
             }
             else if (PlaystateManagement.MediaPlayerNumberIsQueued != -1)
             {
                 StartVideoInBkgrd(PlaystateManagement.MediaPlayerNumberIsQueued);
             }
             else
             {
                 StartVideoInBkgrd();
             }
         });
     }
 }
コード例 #8
0
        /// <summary>
        /// starts the video in background
        /// </summary>
        /// <param name="tab"></param>
        public static async void StartVideoInBkgrd(int webViewId = -1, int mediaPlayerId = -1)
        {
            if (PlaystateManagement.WebViewPlayerIsStreaming || PlaystateManagement.PlayerTypeQueued() == PlayerType.WebViewPlayer)
            {
                if (webViewId == -1)
                {
                    webViewId = PlaystateManagement.WebViewPlayerNumberIsStreaming;
                }
                PlaystateManagement.WebViewPlayerIsStreaming = true;
                await Task.Delay(10);

                ViewHelpers.DoActionOnUiThread(() =>
                {
                    PlaystateManagement.WebViewIdDictionary[webViewId].LoadUrl(JavascriptCommands._jsPlayVideo);
                });
                await Task.Delay(20);

                ViewHelpers.DoActionOnUiThread(() =>
                {
                    PlaystateManagement.WebViewIdDictionary[webViewId].LoadUrl(JavascriptCommands._jsPlayVideo);
                });
                VerifyInBackground(webViewId);
            }
        }
コード例 #9
0
 /// <summary>
 /// pause the video
 /// </summary>
 public void Pause()
 {
     AppIsMovingIntoBackgroundAndStreaming = false;
     PlaystateManagement.SendPauseVideoCommand();
 }