python - 如何在 python 音乐播放器应用程序上从云帐户流式传输歌曲
问题描述
我正在制作一个音乐播放器应用程序Pygame
,最初,我正在播放我在本地系统中下载的歌曲,现在我想将此应用程序作为可执行文件与我的朋友分享,现在的问题是他们可能还没有下载歌曲在他们的系统上,位置也不会相同,因此我想到将歌曲文件上传到云端,就我而言,Mega,我是菜鸟,这是我第一次探索云存储和流媒体的东西,现在我想访问存储在我的云帐户中的歌曲并在我的应用程序中播放,基本上我需要所有可能的访问存储在云中的每个文件,因为该应用程序做了很多事情,比如随机播放、下一首歌曲的标题、循环等.
我现在的问题是如何在我的 Python 桌面应用程序中从我的云帐户流式传输音频?
我选择了Mega,因为它为免费帐户提供 20GB 的存储空间,但我不确定这是否是我想要实现的目标的合适平台,还是仅适用于云存储,任何对正确方向的见解下一步将非常有帮助。
更新:我尝试使用大型 API,但我在登录时遇到错误
是否有任何替代方案或有人知道如何摆脱mega.errors.RequestError: EACCESS, Access violation
登录过程中面临的这个错误。
我用于登录的代码:
from mega import Mega
mega = Mega()
m = mega.login(email, password)
m = mega.login()
解决方案
我已经成功地使用该mega.py
软件包从 mega 获取文件。安装
pip install mega.py
然后获取要玩的文件:
from mega import Mega
import tempfile
# Login to mega
mega = Mega()
email="XXXXXX@XXXXX.XXX"
password="XXXXXXXXXXXX"
m = mega.login(email, password)
# Get the file descriptor of a previously uploaded file
filename='file_example_MP3_700KB.mp3'
filedesc = m.find(filename)
with tempfile.TemporaryDirectory() as tmpdir:
# Download the file to a temporary directory
downloaded_file_name = m.download(filedesc, tmpdir)
# replace the following with pygame code for playing the downloaded_file_name file
print(downloaded_file_name)
适当替换电子邮件、密码和文件名的位置。
请注意,如果我的电子邮件/密码不正确,我会RequestError
在问题中得到一个。
mega.errors.RequestError: ENOENT, Object (typically, node or user) not found
下载文件后,可以pygame
在https://www.geeksforgeeks.org/python-playing-audio-file-in-pygame/中播放
推荐阅读
- javascript - 深度比较 React 中的对象道具未按预期工作
- ios - 无法在左侧显示长长的collectionviewcell,在右侧显示小单元格
- karate - 使用 Json Parse 错误消息在空手道中发布 400 错误请求错误的请求
- python - 批处理文件未在任务调度程序中运行 python 脚本
- sql - 如何根据同一张表中的其他列匹配替换空值
- javascript - 如何从javascript中的数组和对象比较中过滤值?
- javascript - 在函数中使用 Vue JS $refs
- php-7 - Guzzle 6 在本地 docker 服务器上跟踪重定向,但不在生产服务器上
- asp.net-mvc - asp.net mvc参数绑定字符串和guid
- debugging - 无法在 Visual Studio Code 中调试 AWS Lambda 函数。代码镜头信息不可见