获取<;音频></音频>;在django的HTTPresponse中播放mp3文件
我正在制作一个django应用程序,它基本上可以保存你上传的任何mp3文件,并为它创建一个模型。然后,当您从列表中选择歌曲时,调用一个视图,该视图生成播放所选mp3文件所需的HTML:获取<;音频></音频>;在django的HTTPresponse中播放mp3文件,django,mp3,Django,Mp3,我正在制作一个django应用程序,它基本上可以保存你上传的任何mp3文件,并为它创建一个模型。然后,当您从列表中选择歌曲时,调用一个视图,该视图生成播放所选mp3文件所需的HTML: def playAudioFile(request, title): fname= os.path.join(BASE_DIR, 'upandplay/songdir/' + title + '.mp3') f = open(fname,"rb") response = HttpResp
def playAudioFile(request, title):
fname= os.path.join(BASE_DIR, 'upandplay/songdir/' + title + '.mp3')
f = open(fname,"rb")
response = HttpResponse(f.read())
response['Content-Type'] ='audio/mp3'
response['Content-Length'] = os.path.getsize(fname )
return render(request, 'playlist.html', {'response': response})
我的html模板如下所示:
{% extends 'index.html' %}
{% block content %}
<div class='row'>
{{response}}
</div>
{% endblock %}
{%extends'index.html%}
{%block content%}
{{response}}
{%endblock%}
我被重定向到正确的url,但歌曲无法播放。我怎样才能播放这首歌
在此之前非常感谢。您编写的方法仅适用于表单和django变量,而不是服务器上的文件。您需要向其发送POST请求,然后接收响应。 相反,你可以试试这样的东西 在模板中添加html音频标记
<audio id='myaudio' preload= 'auto' controls type="audio/mpeg"></audio>
确保该位置位于应用程序文件夹中的服务器文件中。Javascript不会从本地计算机加载文件。例如,您的mp3文件位于myapp/static文件夹中,您的文件位置将为“/static/”。您编写的方式仅适用于表单和django变量,而不是来自服务器的文件。您需要向其发送POST请求,然后接收响应。 相反,你可以试试这样的东西 在模板中添加html音频标记
<audio id='myaudio' preload= 'auto' controls type="audio/mpeg"></audio>
确保该位置位于应用程序文件夹中的服务器文件中。Javascript不会从本地计算机加载文件。例如,如果您的mp3文件位于myapp/static文件夹中,则您的文件位置将为“/static/”
function play()
{
var source = document.getElementById('myaudio');
source.src = 'your file location on the server'+ your_file_name;
}