Esempio n. 1
0
        internal bool Speech(Entity admin,
                             [CommandArgument("음성으로 출력할 메시지", CommandArgumentOption.AfterAll)] string message)
        {
            if (string.IsNullOrWhiteSpace(message))
            {
                return(false);
            }

            VoiceReader.Read(message).ContinueWith(task =>
            {
                var bytes   = task.Result;
                var session = admin.GetSession();
                session.Send(new VoiceMsg {
                    Id = admin.Id, Mp3 = bytes
                });
            });
            return(true);
        }
Esempio n. 2
0
        private async void DoSpeech(string userName, string message)
        {
            try
            {
                // 먼저 채팅 메시지를 전파한 후,
                BroadcastChatMsgWithLock(userName, message);

                var mp3Bytes = await VoiceReader.Read(message);
                var mp3Base64 = Convert.ToBase64String(mp3Bytes);

                // 시간 차이가 좀 크겠지만,  Mp3 메시지를 전달한다.
                BroadcastCommandMsgWithLock(InterChatCommandType.Speech, mp3Base64);
            }
            catch (Exception e)
            {
                Logger.Write(e);
            }
        }