HTML5 播放器在网页上显示,但 mp3 声音不播放

Posted

技术标签:

【中文标题】HTML5 播放器在网页上显示,但 mp3 声音不播放【英文标题】:HTML5 player shows on webpage but, mp3 sound not playing 【发布时间】:2020-03-14 05:48:26 【问题描述】:

我是编程新手,我正在尝试在播放器正在显示的 django 网页上放置一个 mp3 文件和播放器,但是歌曲没有播放。

**models.py** 

from django.db import models
from django.contrib.auth.models import User


class Song(models.Model):
    name = models.CharField(max_length=125)
    audio_file = models.FileField('media/')

**audio.html**
    <!DOCTYPE html>
<html>
<body>

<audio controls>
  <source src="JesusChrist.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

</body>
</html>

**media folder**
JesusChrist.mp3

**Settings.py**

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'firegod/static/media')
]

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'media')
STATIC_URL = '/media/'

【问题讨论】:

看看这个Simple Is Better Than Complex 是的,我看过了,但还是有问题 【参考方案1】:

This video 是一个很好的参考,应该把所有的东西都拼出来。他展示了文件上传后的去向以及如何在模板中访问它们。

你遇到的另一个问题是:

# Sets STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# Sets STATIC_URL
STATIC_URL = '/static/'

# Overwrites STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'media')
# Overwrites STATIC_URL
STATIC_URL = '/media/'

我相信你想要的是:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

然后您应该可以在以下位置找到您的文件 src="media/audio.mp3"。如果需要,print 上传文件的 url,以便您知道在哪里找到它。

我正要深入研究这个,所以我可能有点偏离,尽管我知道上面链接的视频非常有益。

【讨论】:

以上是关于HTML5 播放器在网页上显示,但 mp3 声音不播放的主要内容,如果未能解决你的问题,请参考以下文章

在 Linux 上播放 mp3 声音缓冲区

html5网页播放声音

HTML5 audio 如何实现播放多个MP3音频

HTML5 mp3 音频在 Chrome 和 Firefox 中不起作用

声音在鼠标悬停 mp3、Wordpress 上播放延迟

如何使用 html 和 javascript 在网页上自动播放声音