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); }
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); } }