-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest-c.py
64 lines (52 loc) · 1.52 KB
/
test-c.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import pyaudio, sys, socket
import wave
import pygame
port = 5001
ip = "192.168.43.143"
chunk = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 48000
p = pyaudio.PyAudio()
stream = p.open(format = FORMAT, channels = CHANNELS, rate = RATE, output=True, output_device_index=0, frames_per_buffer = chunk)
#Create a socket connection for connecting to the server:
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((ip, port))
# save stream audio
audio_buffer = []
cnt=0
file_order=0
pygame.mixer.init()
def save_wave_file(filename,data):
wf = wave.open(filename,'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(2)
wf.setframerate(RATE)
wf.writeframes(b''.join(data))
wf.close()
while True:
#try:
#Recieve data from the server:
data = client_socket.recv(1024)
#stream.write(data,chunk) #play stream sound
audio_buffer.append(data)
cnt+=1
#print(cnt)
if cnt >= 500:
file_name ='stream_music/' 'stream' + str(file_order) + '.wav'
save_wave_file(file_name, audio_buffer)
audio_buffer = []
cnt=0
print("Now playing: "+file_name)
pygame.mixer.music.load(file_name)
m = pygame.mixer.music
m.set_volume(1)
m.play()
if file_order>=10:
file_order=0
else:
file_order+=1
#print(data)
#except Exception as e:
# print(e)
socket.close()