void AttachFile(TweetMedia.TweetStateCode code)
        {
            if (code == TweetMedia.TweetStateCode.Begin)
            {
                if (!m_toggle_screenshot.isOn)
                {
                    return;
                }
                if (m_recorderUI == null)
                {
                    Debug.LogWarning("TweetMediaAttachFile: m_recorderUI is null");
                    return;
                }
                m_toggle_screenshot.isOn = false;

                m_recorderUI.Flush();
                m_tweet_media.AddMediaFile(m_recorderUI.GetOutputPath());
            }
        }
        public virtual void HandleTweetEvent(TweetMedia.TweetStateCode code)
        {
            switch (code)
            {
            case TweetMedia.TweetStateCode.Begin:
                status_text = "Tweet in progress...";
                m_input_message.interactable = false;
                m_button_tweet.interactable  = false;
                break;

            case TweetMedia.TweetStateCode.Succeeded:
                m_input_message.text         = "";
                status_text                  = "Succeeded!";
                m_input_message.interactable = true;
                m_button_tweet.interactable  = true;
                break;

            case TweetMedia.TweetStateCode.Failed:
                status_text = "Failed: " + m_tweet_media.error_message;
                m_input_message.interactable = true;
                m_button_tweet.interactable  = true;
                break;
            }
        }
    void AttachScreenshot(TweetMedia.TweetStateCode code)
    {
        if (code == TweetMedia.TweetStateCode.Begin)
        {
            if (!m_toggle_screenshot.isOn)
            {
                return;
            }
            m_toggle_screenshot.isOn = false;

            MovieCapturer capturer = m_capturer_hud.m_capturer;
            var           mtype    = GetMediaType(capturer);
            if (mtype != TweetMediaPlugin.tmEMediaType.Unknown)
            {
                int    begin     = m_capturer_hud.begin_frame;
                int    end       = m_capturer_hud.end_frame;
                int    data_size = capturer.GetExpectedFileSize(begin, end);
                IntPtr data      = Marshal.AllocHGlobal(data_size);
                capturer.WriteMemory(data, begin, end);
                m_tweet_media.AddMedia(data, data_size, mtype);
                Marshal.FreeHGlobal(data);
            }
        }
    }