import os import streamlit as st from pydub import AudioSegment import pyaudio def play_audio(audio_data): # 创建音频流 p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(2), channels=2, rate=44100, output=True) # 播放音频流 stream.write(audio_data) # 关闭音频流 stream.stop_stream() stream.close() p.terminate() import streamlit as st import cv2 from moviepy.editor import VideoFileClip def main(): st.title("视频播放器") # 上传视频文件 video_file = st.file_uploader("选择视频文件", type=["mp4"]) if video_file is not None: # 读取视频文件 video_data = video_file.read() st.video(video_data) # 播放视频 play_video(video_data) st.title("音乐播放器") # 上传音频文件 audio_file = st.file_uploader("选择音频文件", type=["mp3"]) if audio_file is not None: # 读取音频文件 audio_data = audio_file.read() st.audio(audio_data, format='audio/mp3') # 播放音频 play_audio(audio_data) def play_video(video_data): # 将视频数据保存为临时文件 temp_file = "temp_video.mp4" with open(temp_file, "wb") as file: file.write(video_data) # 使用OpenCV读取视频 video = cv2.VideoCapture(temp_file) # 播放视频 while video.isOpened(): ret, frame = video.read() if not ret: break # # 在Streamlit界面上显示帧 # st.image(frame, channels="BGR") # 关闭视频流和删除临时文件 video.release() cv2.destroyAllWindows() if st.button("删除临时文件"): os.remove(temp_file) if __name__ == "__main__": main()
基于streamlitk开发一款视频播放器/音乐播放器
最新推荐文章于 2024-09-27 10:11:28 发布