无法在Python Flask服务器上播放音频,但在本地运行正常

时间:2019-10-19 18:24:02

标签: javascript python html button server

我编写了一个Python Flask程序MusicServer.py,该程序在本地网络上创建了一个服务器,并将render_template()连接到我的HTML page.html文件。运行服务器时,所有内容均按预期加载,但是即使在运行独立的page.html文件时按下按钮播放音乐时,播放音乐的按钮也无法正常工作。

我已经尝试通过运行音频文件以播放实际的python服务器文件来尝试播放音频文件,我尝试了HTML表单,尝试了Javascript,该脚本也可以按预期的方式在原始HTML执行上运行,但不能在服务器上运行,并且我尝试使用内置的HTML音频标签。

*** python MusicServer.py

from flask import Flask, render_template
import os
import socket

app = Flask(__name__)

@app.route("/")
def main():
    return render_template('page.html')

if __name__ == "__main__":
    print(socket.gethostbyname(socket.gethostname()))
    app.run(debug = True, host = "0.0.0.0", port = 80)
    os.system("python run MusicServer.py")

*** HTML page.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>
        Music Server Test
    </title>
</head>

<body bgcolor="pink">

    <script type="text/javascript">
        var songs = [new Audio('SwedenC418.mp3'), 
        new Audio('FirefliesOwlCity.mp3')];

        var counter = 1;

        function playSong(song)
        {
        if (counter % 2 == 1)
        {
        song.play();
        }
        else
        {
        song.pause();
        }
        counter = counter + 1;
        }
    </script>

<h1>
    <center>
        Welcome to the Music Box!
    </center>
</h1>

<button onclick="playSong(songs[0]);" name="SweedenC418">
    Sweden- C418 (Caution and Crisis Remix)
</button>

<button onclick="playSong(songs[1]);" name="FirefliesOwlCity">
    Fireflies- Owl City
</button>

<audio controls>
    <source src="SwedenC418.mp3">
</audio>

</body>
</html>

预期结果是能够通过在Python Flask托管的HTML页面上通过按下按钮来播放音频,但实际结果只是显示没有按钮功能的页面。

当我尝试在服务器上运行时尝试通过HTML按钮执行Fireflies歌曲时,在python控制台中收到的两个错误消息是 “ GET /FirefliesOwlCity.mp3 HTTP / 1.1” 404- 对于瑞典C418歌曲,错误是 “ GET /SwedenC418.mp3 HTTP / 1.1” 404-

0 个答案:

没有答案