public static void Voice_Receive_Callback(IAsyncResult ar) { VoiceObject v_obj = (VoiceObject)ar.AsyncState; try { var bytesRead = v_obj.work_socket.EndReceive(ar); string recv_str = null; recv_str = Encoding.UTF8.GetString(recv_bytes, 0, bytesRead); if (recv_str.Split('.')[0] != "voiceend") { v_obj.wave_provider.AddSamples(voice_buffer, 0, bytesRead); v_obj.recieved_stream.Play(); v_obj.work_socket.BeginReceive(voice_buffer, 0, 5242880, SocketFlags.None, Voice_Receive_Callback, v_obj); } else { v_obj.chat_Window.end_voice_chat(); } } catch (Exception ex) { Console.WriteLine("异常信息:", ex.Message); } }
/// <summary> /// 分享语音 /// </summary> /// <param name="voiceObject">语音信息</param> /// <param name="thumbnail">缩略图</param> /// <param name="url">点击链接 URI</param> /// <param name="title">标题</param> /// <param name="description">描述</param> /// <returns>是否发送成功,不等于分享成功</returns> public bool ShareVoice(VoiceObject voiceObject, Bitmap thumbnail = null, string url = null, string title = null, string description = null) { if (thumbnail != null) { voiceObject.SetThumbImage(thumbnail); } set(voiceObject, url, title, description); return(Share(voiceObject)); }
public static void Voice_Receive(Socket work_socket, WaveOut recv_stream, BufferedWaveProvider provider, Chat_Window chat_Window) { try { VoiceObject v_obj = new VoiceObject(); v_obj.work_socket = work_socket; v_obj.recieved_stream = recv_stream; v_obj.wave_provider = provider; v_obj.chat_Window = chat_Window; work_socket.BeginReceive(voice_buffer, 0, 5242880, SocketFlags.None, Voice_Receive_Callback, v_obj); } catch (Exception ex) { Console.WriteLine("异常信息:", ex.Message); } }