예제 #1
0
        public async void SendMessageVideo(string to, byte[] videoData, WhatsAPI.UniversalApps.Libs.Constants.Enums.VideoType vidtype)
        {
            FMessage msg = await this.getFmessageVideo(to, videoData, vidtype);

            if (msg != null)
            {
                this.SendMessage(msg);
            }
        }
예제 #2
0
        protected async Task <FMessage> getFmessageVideo(string to, byte[] videoData, WhatsAPI.UniversalApps.Libs.Constants.Enums.VideoType vidtype)
        {
            to = Helpers.GetJID(to);
            string type      = string.Empty;
            string extension = string.Empty;

            switch (vidtype)
            {
            case WhatsAPI.UniversalApps.Libs.Constants.Enums.VideoType.MOV:
                type      = "video/quicktime";
                extension = "mov";
                break;

            case WhatsAPI.UniversalApps.Libs.Constants.Enums.VideoType.AVI:
                type      = "video/x-msvideo";
                extension = "avi";
                break;

            default:
                type      = "video/mp4";
                extension = "mp4";
                break;
            }

            //create hash
            string filehash = string.Empty;
            SHA256 sha      = SHA256.Create();

            byte[] raw = sha.ComputeHash(videoData);
            filehash = Convert.ToBase64String(raw);


            //request upload
            UploadResponse response = await this.UploadFile(filehash, "video", videoData.Length, videoData, to, type, extension);

            if (response != null && !String.IsNullOrEmpty(response.url))
            {
                //send message
                FMessage msg = new FMessage(to, true)
                {
                    media_wa_type          = FMessage.Type.Video,
                    media_mime_type        = response.mimetype,
                    media_name             = response.url.Split('/').Last(),
                    media_size             = response.size,
                    media_url              = response.url,
                    media_duration_seconds = response.duration,
                    binary_data            = await this.CreateVideoThumbnail(videoData, "thumb-" + response.url.Split('/').Last().Replace(getExtension(response.url.Split('/').Last()), "jpg"))
                };
                return(msg);
            }
            return(null);
        }
예제 #3
0
        public async void SendMessageBroadcastVideo(string[] recipients, byte[] VideoData, WhatsAPI.UniversalApps.Libs.Constants.Enums.VideoType vidtype)
        {
            string        to;
            List <string> foo = new List <string>();

            foreach (string s in recipients)
            {
                foo.Add(Helpers.GetJID(s));
            }
            to = string.Join(",", foo.ToArray());
            FMessage msg = await this.getFmessageVideo(to, VideoData, vidtype);

            if (msg != null)
            {
                this.SendMessage(msg);
            }
        }