unknown commited on
Commit
9a5efb7
·
1 Parent(s): 26876a0
Files changed (1) hide show
  1. app.py +10 -16
app.py CHANGED
@@ -522,21 +522,15 @@ def play_on_select(
522
  state,
523
  ):
524
  if not state or "aligned" not in state:
525
- raise gr.Error("请先加载并对齐。")
526
 
527
- # evt.index 在 gradio 里可能是:
528
- # - int: 行号
529
- # - tuple(row, col)
530
  idx_raw = evt.index
531
- if isinstance(idx_raw, (tuple, list)):
532
- row = int(idx_raw[0])
533
- else:
534
- row = int(idx_raw)
535
 
536
  if not df_value or row < 0 or row >= len(df_value):
537
  raise gr.Error("无法读取选中行,请重试。")
538
 
539
- seg_idx = int(df_value[row][0]) # 第 0 列是 segment idx(从1开始)
540
  seg = state["aligned"][seg_idx - 1]
541
 
542
  a_start, a_end, b_start, b_end = pick_window(
@@ -549,18 +543,18 @@ def play_on_select(
549
  info = {
550
  "segment": seg_idx,
551
  "play_mode": play_mode,
552
- "crop_mode": crop_mode,
553
- "offset_a_sec": float(offset_a),
554
- "offset_b_sec": float(offset_b),
555
  "A_time": f"{a_start:.2f}-{a_end:.2f}",
556
  "B_time": f"{b_start:.2f}-{b_end:.2f}",
557
  }
558
 
 
559
  if play_mode == "A":
560
- return a_wav, None, info
561
- if play_mode == "B":
562
- return None, b_wav, info
563
- return a_wav, b_wav, info
 
 
564
 
565
 
566
  # =========================================================
 
522
  state,
523
  ):
524
  if not state or "aligned" not in state:
525
+ raise gr.Error("请先加载并对齐。")
526
 
 
 
 
527
  idx_raw = evt.index
528
+ row = int(idx_raw[0] if isinstance(idx_raw, (tuple, list)) else idx_raw)
 
 
 
529
 
530
  if not df_value or row < 0 or row >= len(df_value):
531
  raise gr.Error("无法读取选中行,请重试。")
532
 
533
+ seg_idx = int(df_value[row][0])
534
  seg = state["aligned"][seg_idx - 1]
535
 
536
  a_start, a_end, b_start, b_end = pick_window(
 
543
  info = {
544
  "segment": seg_idx,
545
  "play_mode": play_mode,
 
 
 
546
  "A_time": f"{a_start:.2f}-{a_end:.2f}",
547
  "B_time": f"{b_start:.2f}-{b_end:.2f}",
548
  }
549
 
550
+ # ✅ 关键修复:不要返回 None
551
  if play_mode == "A":
552
+ return a_wav, gr.update(value=None), info
553
+ elif play_mode == "B":
554
+ return gr.update(value=None), b_wav, info
555
+ else:
556
+ return a_wav, b_wav, info
557
+
558
 
559
 
560
  # =========================================================