修复:选择媒体后更新文件服务
This commit is contained in:
@@ -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
|
||||
"""
|
||||
初始化高级流式服务器
|
||||
|
||||
|
||||
@@ -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):
|
||||
"""窗口关闭事件"""
|
||||
|
||||
Reference in New Issue
Block a user