當用OBS 做直播時,常發現不穩問題,原來是網路品質不好,於是開發一下檢測網路速度
1.pip install speedtest-cli
2.程式如下
import speedtest
st = speedtest.Speedtest()
print(st.download())
print(st.upload())
print(f"Your download speed: {round(st.download() / 1000 / 1000, 1)} Mbit/s")
print(f"Your upload speed: {round(st.upload() / 1000 / 1000, 1)} Mbit/s")
3.改用 pyqt5 可以執行網路檢測的方法
3.1 介面如
3.2 程式如下:
def network_testing(self):
self.ui.pushButton_65.setStyleSheet('QPushButton { color: red;}')
self.speeding = network_speed()
self.speeding.start()
self.speeding.trigger.connect(self.updateLabel)
def updateLabel(self, upload, download):
self.upload=upload
self.download=download
self.ui.lineEdit_25.setText( self.upload )
self.ui.lineEdit_32.setText( self.download)
self.ui.pushButton_65.setStyleSheet('QPushButton { color: black;}')
3.3 要用 Thread 來執行,程式如下:
class network_speed(QThread):
trigger = pyqtSignal(str,str)
def __init__(self):
super(network_speed, self).__init__()
def run(self):
self.test = speedtest.Speedtest()
self.test.get_servers()
#self.best = self.test.get_best_server()
while True:
self.upload = str( int(self.test.upload() / 1024 / 1024))
self.download = str( int(self.test.download() / 1024 / 1024))
if self.upload != "" and self.download != "":
self.trigger.emit( self.upload, self.download)
break