Skip to main content
Glama

add_audio_fade

Apply fade-in and fade-out effects to audio segments in video editing projects. Specify durations for smooth audio transitions at clip beginnings and endings.

Instructions

为音频片段添加淡入淡出效果

Args: audio_segment_id: 音频片段ID,通过add_audio_segment获得 in_duration: 音频淡入时长,格式如 "1s", "500ms", "0.5s" out_duration: 音频淡出时长,格式如 "1s", "500ms", "0.5s"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
audio_segment_idYes
in_durationYes
out_durationYes

Implementation Reference

  • MCP tool handler for 'add_audio_fade': validates inputs, retrieves draft/track info from index_manager, calls service layer.
    @mcp.tool() def add_audio_fade( audio_segment_id: str, in_duration: str, out_duration: str ) -> ToolResponse: """ 为音频片段添加淡入淡出效果 Args: audio_segment_id: 音频片段ID,通过add_audio_segment获得 in_duration: 音频淡入时长,格式如 "1s", "500ms", "0.5s" out_duration: 音频淡出时长,格式如 "1s", "500ms", "0.5s" """ # 参数验证 if not in_duration or not out_duration: return ToolResponse( success=False, message="淡入时长和淡出时长不能为空" ) # 简单的时间格式验证 def validate_duration(duration: str) -> bool: """验证时间格式是否正确""" if not duration: return False # 检查是否以s或ms结尾 if not (duration.endswith('s') or duration.endswith('ms')): return False # 检查数字部分 try: if duration.endswith('ms'): float(duration[:-2]) else: float(duration[:-1]) return True except ValueError: return False if not validate_duration(in_duration): return ToolResponse( success=False, message=f"无效的淡入时长格式: {in_duration},正确格式如 '1s', '500ms'" ) if not validate_duration(out_duration): return ToolResponse( success=False, message=f"无效的淡出时长格式: {out_duration},正确格式如 '1s', '500ms'" ) # 通过audio_segment_id获取相关信息 draft_id = index_manager.get_draft_id_by_audio_segment_id(audio_segment_id) track_info = index_manager.get_track_info_by_audio_segment_id(audio_segment_id) if not draft_id: return ToolResponse( success=False, message=f"未找到音频片段ID对应的草稿: {audio_segment_id}" ) if not track_info: return ToolResponse( success=False, message=f"未找到音频片段ID对应的轨道信息: {audio_segment_id}" ) track_name = track_info.get("track_name") # 调用服务层处理业务逻辑 result = add_audio_fade_service( draft_id=draft_id, audio_segment_id=audio_segment_id, in_duration=in_duration, out_duration=out_duration, track_name=track_name ) return result
  • Service layer function that instantiates AudioSegment and invokes add_fade method, handling errors and response.
    def add_audio_fade_service( draft_id: str, audio_segment_id: str, in_duration: str, out_duration: str, track_name: Optional[str] = None ) -> ToolResponse: """ 音频淡入淡出添加服务 - 为音频片段添加淡入淡出效果 Args: draft_id: 草稿ID audio_segment_id: 音频片段ID in_duration: 音频淡入时长,格式如 "1s"、"500ms" out_duration: 音频淡出时长,格式如 "1s"、"500ms" track_name: 轨道名称(可选) Returns: ToolResponse: 包含操作结果的响应对象 """ try: # 创建AudioSegment实例,传入audio_segment_id audio_segment = AudioSegment(draft_id, audio_segment_id=audio_segment_id, track_name=track_name) # 调用音频淡入淡出添加方法 result_data = audio_segment.add_fade( in_duration=in_duration, out_duration=out_duration ) # 构建返回数据 response_data = { "audio_segment_id": audio_segment_id, "draft_id": draft_id, "in_duration": in_duration, "out_duration": out_duration, "add_fade": result_data } # 添加可选参数到返回数据 if track_name: response_data["track_name"] = track_name return ToolResponse( success=True, message=f"音频淡入淡出添加成功: 淡入{in_duration}, 淡出{out_duration}", data=response_data ) except ValueError as e: # 处理参数错误 return ToolResponse( success=False, message=f"参数错误: {str(e)}" ) except NameError as e: # 处理轨道不存在错误 return ToolResponse( success=False, message=f"轨道错误: {str(e)}" ) except Exception as e: # 处理其他未预期的错误 return ToolResponse( success=False, message=f"音频淡入淡出添加失败: {str(e)}" )
  • Core AudioSegment.add_fade method: constructs fade parameters and appends operation to audio.json file.
    def add_fade(self, in_duration: str, out_duration: str, audio_segment_id: Optional[str] = None) -> bool: """ 添加音频淡入淡出效果 Args: in_duration: 音频淡入时长,格式如 "1s"、"500ms" out_duration: 音频淡出时长,格式如 "1s"、"500ms" Returns: bool: 添加是否成功 """ if self.audio_segment_id is None and audio_segment_id is None: print("错误: audio_segment_id不能为空") return False audio_segment_id = audio_segment_id or self.audio_segment_id # 验证参数 if not in_duration or not out_duration: print("错误: in_duration和out_duration不能为空") return False # 构建add_fade参数 add_fade_params = { "in_duration": in_duration, "out_duration": out_duration } # 构建完整的淡入淡出数据 fade_data = { "audio_segment_id": audio_segment_id, "operation": "add_fade", "add_fade": add_fade_params } # 保存参数 self.add_json_to_file(fade_data) return True
  • Registration of audio tools (including add_audio_fade) by calling audio_tools(mcp) in the main server setup.
    audio_tools(mcp)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hey-jian-wei/jianying-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server