public static void BreakDown(this StreamingQuality quality, out StreamingResolution resolution, out StreamingLMH lmh)
        {
            switch (quality)
            {
            case StreamingQuality.ThreeSixty:
                lmh        = StreamingLMH.Low;
                resolution = StreamingResolution.ThreeSixty;
                break;

            case StreamingQuality.FourEightyLow:
                lmh        = StreamingLMH.Low;
                resolution = StreamingResolution.FourEighty;
                break;

            case StreamingQuality.FourEightyMedium:
                lmh        = StreamingLMH.Medium;
                resolution = StreamingResolution.FourEighty;
                break;

            case StreamingQuality.FourEightyHigh:
                lmh        = StreamingLMH.High;
                resolution = StreamingResolution.FourEighty;
                break;

            case StreamingQuality.SevenTwentyLow:
                lmh        = StreamingLMH.Low;
                resolution = StreamingResolution.SevenTwenty;
                break;

            case StreamingQuality.SevenTwentyMedium:
                lmh        = StreamingLMH.Medium;
                resolution = StreamingResolution.SevenTwenty;
                break;

            case StreamingQuality.SevenTwentyHigh:
                lmh        = StreamingLMH.High;
                resolution = StreamingResolution.SevenTwenty;
                break;

            case StreamingQuality.TenEightyLow:
                lmh        = StreamingLMH.Low;
                resolution = StreamingResolution.TenEighty;
                break;

            case StreamingQuality.TenEightyMedium:
                lmh        = StreamingLMH.Medium;
                resolution = StreamingResolution.TenEighty;
                break;

            case StreamingQuality.TenEightyHigh:
                lmh        = StreamingLMH.High;
                resolution = StreamingResolution.TenEighty;
                break;

            default:
                lmh        = StreamingLMH.Low;
                resolution = StreamingResolution.ThreeSixty;
                break;
            }
        }
예제 #2
0
        private List <JSONNode> GetPreferredQualities(List <JSONNode> qualities, StreamingResolution resolution)
        {
            if (resolution == StreamingResolution.Adaptive)
            {
                return(null);
            }

            bool resolution_found = false;

            List <JSONNode> preferred_qualities = new List <JSONNode>();

            for (int i = 0; i < qualities.Count; i++)
            {
                if (int.Parse(qualities[i]["height"]) <= (int)resolution)
                {
                    preferred_qualities.Add(qualities[i]);

                    if (int.Parse(qualities[i]["height"]) == (int)resolution)
                    {
                        resolution_found = true;
                    }
                }
            }

            if (!resolution_found)
            {
                Debug.Log("[VimeoPlayer] This video does not have a " + resolution + " resolution. Defaulting to " + preferred_qualities[0]["height"] + "p.");
            }

            return(preferred_qualities);
        }
        public static StreamingQuality ToStreamingQuality(this StreamingResolution resolution, StreamingLMH lmh)
        {
            var quality = string.Format("{0}{1}", resolution, lmh);

            if (resolution == StreamingResolution.ThreeSixty)
            {
                return(StreamingQuality.ThreeSixty);
            }

            return((StreamingQuality)Enum.Parse(typeof(StreamingQuality), quality, true));
        }
 public static void BreakDown(this StreamingQuality quality, out StreamingResolution resolution, out StreamingLMH lmh)
 {
     switch (quality)
     {
         case StreamingQuality.ThreeSixty:
             lmh = StreamingLMH.Low;
             resolution = StreamingResolution.ThreeSixty;
             break;
         case StreamingQuality.FourEightyLow:
             lmh = StreamingLMH.Low;
             resolution = StreamingResolution.FourEighty;
             break;
         case StreamingQuality.FourEightyMedium:
             lmh = StreamingLMH.Medium;
             resolution = StreamingResolution.FourEighty;
             break;
         case StreamingQuality.FourEightyHigh:
             lmh = StreamingLMH.High;
             resolution = StreamingResolution.FourEighty;
             break;
         case StreamingQuality.SevenTwentyLow:
             lmh = StreamingLMH.Low;
             resolution = StreamingResolution.SevenTwenty;
             break;
         case StreamingQuality.SevenTwentyMedium:
             lmh = StreamingLMH.Medium;
             resolution = StreamingResolution.SevenTwenty;
             break;
         case StreamingQuality.SevenTwentyHigh:
             lmh = StreamingLMH.High;
             resolution = StreamingResolution.SevenTwenty;
             break;
         case StreamingQuality.TenEightyLow:
             lmh = StreamingLMH.Low;
             resolution = StreamingResolution.TenEighty;
             break;
         case StreamingQuality.TenEightyMedium:
             lmh = StreamingLMH.Medium;
             resolution = StreamingResolution.TenEighty;
             break;
         case StreamingQuality.TenEightyHigh:
             lmh = StreamingLMH.High;
             resolution = StreamingResolution.TenEighty;
             break;
         default:
             lmh = StreamingLMH.Low;
             resolution = StreamingResolution.ThreeSixty;
             break;
     }
 }
        public static string GetProperResolutionName(this StreamingResolution res)
        {
            switch (res)
            {
            case StreamingResolution.ThreeSixty:
                return("360p");

            case StreamingResolution.FourEighty:
                return("480p");

            case StreamingResolution.SevenTwenty:
                return("720p");

            case StreamingResolution.TenEighty:
                return("1080p");
            }
            return(string.Empty);
        }
예제 #6
0
        public JSONNode GetVideoFileByResolution(StreamingResolution resolution)
        {
            if (resolution == StreamingResolution.Adaptive)
            {
                return(null);
            }

            bool resolution_found = false;

            List <JSONNode> _preferred_qualities = new List <JSONNode>();

            for (int i = 0; i < progressiveFiles.Count; i++)
            {
                if (int.Parse(progressiveFiles[i]["height"]) <= (int)resolution)
                {
                    _preferred_qualities.Add(progressiveFiles[i]);

                    if (int.Parse(progressiveFiles[i]["height"]) == (int)resolution)
                    {
                        resolution_found = true;
                    }
                }
            }

            if (!resolution_found)
            {
                if (_preferred_qualities.Count == 0)
                {
                    Debug.Log("[Vimeo] This video does not have a " + resolution + " resolution. Defaulting to " + progressiveFiles[progressiveFiles.Count - 1]["height"] + "p.");
                    return(progressiveFiles[progressiveFiles.Count - 1]);
                }
                else
                {
                    Debug.Log("[Vimeo] This video does not have a " + resolution + " resolution. Defaulting to " + _preferred_qualities[0]["height"] + "p.");
                }
            }

            return(_preferred_qualities[0]);
        }
 public void PlayVideo(VimeoVideo _vimeoVideo, StreamingResolution resolution)
 {
     vimeoVideo = _vimeoVideo;
     PlayVideoByUrl(vimeoVideo.GetVideoFileUrlByResolution(resolution), vimeoVideo.is3D, vimeoVideo.stereoFormat);
 }
예제 #8
0
 public string GetVideoFileUrlByResolution(StreamingResolution resolution)
 {
     return(GetVideoFileByResolution(resolution)["link"]);
 }
 private void OnStreamingResolutionChanged()
 {
     App.SpecificSettings.StreamingQuality = StreamingResolution.ToStreamingQuality(StreamingLmh);
     StreamingLmhs = null;
     SetQuality(StreamingLmh);
 }