public void listen_audio_header() { while (true) { Package pack = conn.recv(); if (pack.type == "request_audio") { /* * header * [0] count * */ audio_resp = audio_reader.loadWaveOutStream(Int32.Parse(pack.header[0])); MemoryStream stream = new MemoryStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, audio_resp); byte[] data = stream.ToArray(); Package pack_resp = new Package("audio_resp"); pack_resp.data = data; Connector conn_resp = Client.find_conn(Client.conn_audio_data, pack.from); if (conn_resp != null) { conn_resp.send(pack_resp); } } else if (pack.type == "ask_audio") { /* * header * [0] count * * data * format * */ /*audio_reader.loadFile(Local.ref_addr + @"audio\" + pack.header[0]); * MemoryStream stream = new MemoryStream(); * BinaryFormatter formatter = new BinaryFormatter(); * formatter.Serialize(stream, audio_reader.format); * byte[] data = stream.ToArray(); */ byte[] data = new byte[0]; String[] tmp = pack.header[0].Split('\\'); try { data = File.ReadAllBytes(Local.ref_addr + "audio\\" + tmp[tmp.Length - 1]); } catch { } Package pack_resp = new Package("audio_format"); pack_resp.data = data; pack_resp.header.Add(tmp[tmp.Length - 1]); Connector conn_resp = Client.find_conn(Client.conn_audio_data, pack.from); conn_resp.send(pack_resp); } } }
public void loadWaveOutStream() { finish = 0; while (true) { WaveOutStream s = reader.loadWaveOutStream(); if (s == null) { finish = 1; return; } stream.Add(s); } }