首页 > 解决方案 > 如何在 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()

标签: pythonaudio-streamingaudio-playercloud-storagemega-api

解决方案


我已经成功地使用该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

下载文件后,可以pygamehttps://www.geeksforgeeks.org/python-playing-audio-file-in-pygame/中播放


推荐阅读