def __init__(self, surface, start_page, tox_opts): MenuUi.__init__(self, surface, start_page) if tox_opts is not None: Tox.__init__(self, tox_opts) self.self_set_name("Toxphone") print('ID: %s' % self.self_get_address()) self.av = ToxPhoneAV(self) self.ring_enabled = False self.ringtone = wave.open('res/audio/ringtone.wav', 'rb') self.ring_stream = None self.ring_thread = None self.aostream = None self.aistream = None self.av.on_call = self.on_call self.av.on_call_state = self.on_call_state self.av.on_bit_rate_status = self.on_bit_rate_status self.av.on_audio_receive_frame = self.on_audio_receive_frame self.iterate_lock = Lock() ''' self.core_iterate_thread_stop = False self.core_iterate_thread = Thread(target=self.core_iterate) self.core_iterate_thread.daemon = True self.core_iterate_thread.start() self.av_iterate_thread_stop = False self.av_iterate_thread = Thread(target=self.av_iterate) self.av_iterate_thread.daemon = True self.av_iterate_thread.start() ''' self.call_status = {'status': False, 'friend_number': None} self.device_index = 0 self.audio_buffer = b'' print('========== AUDIO DEVICES ==========') for i in range(audio.get_device_count()): if audio.get_device_info_by_index(i)['name'] == 'pulse': self.device_index = i print(audio.is_format_supported(RATE, input_device=self.device_index, input_channels=CHANNELS, input_format=pyaudio.paInt16)) print(audio.get_device_info_by_index(i)) self.connect()