显示一个音频播放器。

函数签名[source]

st.audio(data, format="audio/wav", start_time=0, *, sample_rate=None, end_time=None, loop=False, autoplay=False)

参数

data (str, Path, bytes, BytesIO, numpy.ndarray, 或 file)

要播放的音频。这可以是以下之一:

  • 托管音频文件的URL(字符串)。
  • 本地音频文件的路径。路径可以是strPath对象。路径可以是绝对的,也可以是相对于工作目录的(你在其中执行streamlit run)。
  • 原始音频数据。原始数据格式必须包含所有必要的文件头,以匹配通过format指定的文件格式。

如果data是NumPy数组,它必须是一个波形的一维数组或形状为(C, S)的二维数组,其中C是通道数,S是样本数。请参阅默认通道顺序在 http://msdn.microsoft.com/en-us/library/windows/hardware/dn653308(v=vs.85).aspx

format (str)

音频文件的MIME类型。默认为"audio/wav"。 更多信息,请参见https://tools.ietf.org/html/rfc4281

start_time (int, float, timedelta, str, or None)

元素应该开始播放的时间。这可以是以下之一:

  • None(默认):元素从头开始播放。
  • 一个intfloat,指定时间(以秒为单位)。float值向下舍入到整秒。
  • 一个字符串,指定时间,格式支持Pandas的Timedelta构造函数,例如"2 minute""20s",或"1m14s"
  • 一个来自Python内置的datetime库timedelta对象,例如timedelta(seconds=70)

sample_rate (int or None)

音频数据的采样率,单位为每秒样本数。仅当data为NumPy数组时需要。

end_time (int, float, timedelta, str, 或 None)

元素应停止播放的时间。这可以是以下之一:

  • None(默认):元素播放到结束。
  • 一个intfloat,指定时间(以秒为单位)。float值向下取整到整秒。
  • 一个字符串,指定时间,格式支持Pandas的Timedelta构造函数,例如"2 minute""20s",或"1m14s"
  • 一个来自Python内置的datetime库timedelta对象,例如timedelta(seconds=70)

loop (bool)

音频是否应循环播放。

autoplay (bool)

音频文件是否应自动开始播放。默认情况下为 False。如果用户未通过点击页面上的某个位置与页面进行交互,浏览器将不会自动播放音频文件。

示例

要显示本地文件的音频播放器,请指定文件的字符串路径和格式。

import streamlit as st

st.audio("cat-purr.mp3", format="audio/mpeg", loop=True)

你也可以将bytesnumpy.ndarray对象传递给st.audio

import streamlit as st
import numpy as np

audio_file = open("myaudio.ogg", "rb")
audio_bytes = audio_file.read()

st.audio(audio_bytes, format="audio/ogg")

sample_rate = 44100  # 44100 samples per second
seconds = 2  # Note duration of 2 seconds
frequency_la = 440  # Our played note will be 440 Hz
# Generate array with seconds*sample_rate steps, ranging between 0 and seconds
t = np.linspace(0, seconds, seconds * sample_rate, False)
# Generate a 440 Hz sine wave
note_la = np.sin(frequency_la * t * 2 * np.pi)

st.audio(note_la, sample_rate=sample_rate)
forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。