You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PyScript播放MP3文件?代码报错求解决方案

问题原因与解决方案

你遇到的AttributeError: play错误,核心原因是错误获取了<source>标签元素,而play()、pause()这些播放控制方法属于<audio>元素,并非<source>元素。

修正步骤与代码示例

1. 修改HTML结构,给<audio>标签添加ID

给外层的<audio>元素设置唯一ID,用于PyScript定位:

<audio controls id="audio-player">
  <source src="sounds//ziege.mp3" type="audio/mpeg">
</audio>

<button py-click="play">Play</button>
<button py-click="pause">Pause</button>
<button py-click="stop">Stop</button>

2. 调整PyScript代码,正确操作<audio>元素

无需额外引入pyweb或to_js转换,PyScript的document对象可直接操作DOM元素,同时注意原生audio元素没有stop()方法,需通过重置播放位置模拟停止:

from pyscript import document

# 获取正确的audio元素
audio_player = document.querySelector("#audio-player")

def play(event):
    audio_player.play()

def pause(event):
    audio_player.pause()
    
def stop(event):
    audio_player.pause()
    audio_player.currentTime = 0  # 重置到播放起始位置

关键说明

  • <source>仅用于定义音频资源路径,所有播放控制逻辑都需要作用于父级的<audio>元素。
  • PyScript与浏览器DOM的交互无需额外转换,通过document.querySelector或document.getElementById获取的元素可直接调用原生JS方法。
  • 原生HTMLAudioElement没有内置stop()方法,通过pause()+currentTime=0的组合可以实现停止并重置的效果。

内容的提问来源于stack exchange,提问作者Peter M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 21:42:38