修复:选择媒体后更新文件服务

This commit is contained in:
yqsphp
2026-01-12 14:34:45 +08:00
parent 9eb3427728
commit 3639be1d31
2 changed files with 24 additions and 15 deletions

View File

@@ -617,8 +617,7 @@ class StreamingFileServer:
class HTTPFileServer(StreamingFileServer):
"""高级流式服务器,支持更多功能"""
def __init__(self, port: int = 8000, bind_address: str = "0.0.0.0",
max_chunk_size: int = 1024 * 256): # 256KB
def __init__(self, port: int = 8000, bind_address: str = "0.0.0.0", max_chunk_size: int = 1024 * 256): # 256KB
"""
初始化高级流式服务器

View File

@@ -140,11 +140,6 @@ class MainWindow(QMainWindow):
color: white;
background-color: #6c757d;
}
QPushButton:disabled {
color: #999;
background-color: #f5f5f5;
}
/* 特殊按钮样式 */
#browseBtn{
background:white;
@@ -175,6 +170,14 @@ class MainWindow(QMainWindow):
color: white;
border: none;
}
#startCastBtn:disabled,
#pauseCastBtn:disabled,
#stopCastBtn:disabled{
color: #999 !important;
background-color: #f5f5f5 !important;
}
/*音量图标*/
#muteBtn{
background-color:none;
@@ -297,7 +300,7 @@ class MainWindow(QMainWindow):
# 设备列表标题和刷新按钮
device_header = QHBoxLayout()
device_header.addWidget(QLabel("可用设备列表:"))
device_header.addWidget(QLabel("设备列表(单击选中):"))
device_header.addStretch()
device_layout.addLayout(device_header)
@@ -322,6 +325,7 @@ class MainWindow(QMainWindow):
self.start_btn = QPushButton("开始投屏")
self.start_btn.setObjectName("startCastBtn")
self.start_btn.setCursor(Qt.PointingHandCursor)
self.start_btn.setEnabled(False)
self.start_btn.clicked.connect(self.start_casting)
self.pause_btn = QPushButton("暂停投屏")
@@ -360,6 +364,7 @@ class MainWindow(QMainWindow):
self.mute_btn.setCheckable(True)
self.mute_btn.setFixedWidth(40)
self.mute_btn.setObjectName("muteBtn")
self.mute_btn.setCursor(Qt.PointingHandCursor)
self.mute_btn.clicked.connect(self.toggle_mute)
volume_layout.addWidget(self.mute_btn)
@@ -648,6 +653,7 @@ class MainWindow(QMainWindow):
self.log_message("设备选择", f"已选择设备: {device.get('friendly_name', '未知')}")
# 启用控制按钮
self.start_btn.setText("开始投屏")
self.enable_control_buttons(True)
def browse_file(self):
@@ -673,7 +679,7 @@ class MainWindow(QMainWindow):
file_name = os.path.basename(self.selected_file)
self.file_label.setText(file_name)
#选择文件后启用播放按钮
self.start_btn.setEnabled(True)
self.enable_control_buttons(True)
self.log_message("文件选择", f"已选择文件: {file_name}")
def start_casting(self):
@@ -730,6 +736,8 @@ class MainWindow(QMainWindow):
# 需要重新设置URI
file_name = os.path.basename(self.selected_file)
ip_text = self.ip_label.text()
dir_bool = self.http_server.set_root_directory(self.selected_file)
self.log_message("设置服务路径", "成功" if dir_bool else "失败")
file_url = f"http://{ip_text}/{file_name}"
if self.dlna_controller.set_av_transport_uri(file_url):
@@ -753,7 +761,7 @@ class MainWindow(QMainWindow):
if self.dlna_controller.pause():
self.is_paused = True # 标记为暂停状态
self.start_btn.setText("继续播放")
self.start_btn.setText("继续播放")
self.start_btn.setEnabled(True)
self.pause_btn.setEnabled(False)
@@ -765,7 +773,7 @@ class MainWindow(QMainWindow):
if self.dlna_controller.stop():
self.is_paused = False # 重置暂停状态
self.start_btn.setText("开始投屏")
self.start_btn.setText("开始投屏")
self.start_btn.setEnabled(True)
self.pause_btn.setEnabled(False)
self.stop_btn.setEnabled(False)
@@ -819,10 +827,12 @@ class MainWindow(QMainWindow):
def enable_control_buttons(self, enabled):
"""启用/禁用控制按钮"""
self.pause_btn.setEnabled(False)
self.stop_btn.setEnabled(False)
self.volume_slider.setEnabled(enabled)
self.mute_btn.setEnabled(enabled)
if self.selected_device and self.selected_file:
self.start_btn.setEnabled(True)
self.pause_btn.setEnabled(False)
self.stop_btn.setEnabled(False)
self.volume_slider.setEnabled(enabled)
self.mute_btn.setEnabled(enabled)
def closeEvent(self, event):
"""窗口关闭事件"""