Пример #1
0
    private void Update()
    {
        Vector2 size = ((RectTransform)transform).sizeDelta;

        size.y = ((RectTransform)videoOutput.transform).sizeDelta.y / 4f;
        ((RectTransform)transform).sizeDelta = size;
        if ((int)decoder.getDecoderState() < 2)
        {
            return;
        }
        int    currentTimeInMS = (int)(decoder.getVideoCurrentTime() * 1000);
        int    block           = GetCurrentBlock(currentTimeInMS);
        string text            = "";

        if (block != -1)
        {
            text = subs[block].text;
        }
        for (int i = 0; i < textObjects.Length; ++i)
        {
            textObjects[i].text     = text;
            textObjects[i].fontSize = (int)(size.y * 0.3f);
        }
    }
Пример #2
0
    void Update()
    {
        float  videoTime       = 0;
        string currentTimeText = "";

        if ((int)decoder.getDecoderState() > 1)
        {
            videoTime = decoder.getVideoCurrentTime() / decoder.audioTotalTime;
            if (float.IsInfinity(videoTime))
            {
                videoTime = 0;
            }
            fill.localScale           = new Vector3(videoTime, 1f, 1f);
            handle.anchoredPosition3D = new Vector3(videoTime * canvas.sizeDelta.x, 32, 0);
        }
        else
        {
            Cursor.visible = true;
            time.SetActive(false);
            return;
        }
        Vector3 mousePos = Input.mousePosition;
        bool    onSlider = false;

        onSlider = (mousePos.y > sliderBottom.position.y && mousePos.y < sliderTop.position.y);
        if (mousePos.x < 0 || mousePos.x > Screen.width || mousePos.y < 0)
        {
            onSlider = false;
        }
        time.SetActive(onSlider);
        if (onSlider)
        {
            Vector3 temp = ((RectTransform)time.transform).position;
            temp.x = mousePos.x;
            if (temp.x < (((RectTransform)time.transform).sizeDelta.x * 0.5f))
            {
                temp.x = (((RectTransform)time.transform).sizeDelta.x * 0.5f);
            }
            if (temp.x > Screen.width - (((RectTransform)time.transform).sizeDelta.x * 0.5f))
            {
                temp.x = Screen.width - (((RectTransform)time.transform).sizeDelta.x * 0.5f);
            }
            ((RectTransform)time.transform).position = temp;
            int hoverTime = Mathf.RoundToInt(decoder.audioTotalTime * ((mousePos.x * 1f) / Screen.width));
            if (Input.GetKey(KeyCode.Mouse0))
            {
                if (hoverTime != lastSeekTime)
                {
                    decoder.setSeekTime(hoverTime);
                }
                lastSeekTime = hoverTime;
            }
            if (Input.GetKeyUp(KeyCode.Mouse0))
            {
                lastSeekTime = -1;
            }
            System.TimeSpan timespan = new System.TimeSpan(0, 0, 0, hoverTime, 0);
            if (decoder.audioTotalTime > 3600)
            {
                currentTimeText += timespan.Hours.ToString("D2") + ":";
            }
            if (decoder.audioTotalTime > 60)
            {
                currentTimeText += timespan.Minutes.ToString("D2") + ":";
            }
            currentTimeText += timespan.Seconds.ToString("D2");
            timeText.text    = currentTimeText;
        }
    }