Python 扭曲的网络服务器音频文件

Python Twisted web server audio file

我正在尝试创建一个带有扭曲 python 的简单 Web 服务器。不过,我在提供 m4a 音频文件时遇到问题。

在当前程序中,当我加载http://localhost:8880/mp3.html时,它工作正常。它显示音频播放器和 mp3 播放。此外,该程序同时打印“/mp3.html”和“/test.mp3”。

但是,当我加载 http://localhost:8880/m4a.html 时,它不起作用。它显示音频播放器,但 m4a 不播放。此外,该程序仅打印“/m4a.html”而不打印“/test.m4a”。

我当前的代码如下。

import urlparse
import os
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.resource import Resource
from twisted.web.static import File
import time
import subprocess
import mimetypes

class playM4A(Resource):
    isLeaf = True
    def render_GET(self, request):
        this=urlparse.urlparse(request.path)#scheme,netloc,path,query
        root,ext=os.path.splitext(this.path)
        filename=os.path.basename(request.path)
        fileFolder=request.path.replace(filename,"")
        self.serverRoot=os.getcwd()
        print request.path
        if ext==".m4a":
            thisFile=File(self.serverRoot+request.path)
            return File.render_GET(thisFile,request)
        elif ext==".mp3":
            thisFile=File(self.serverRoot+request.path)
            return File.render_GET(thisFile,request)
        elif filename=="m4a.html":
            return """
<html>
<audio controls>
  <source src="http://localhost:8880/test.m4a" type="audio/mp4a-latm">
Your browser does not support the audio element.
</audio>
not m4a </html>"""
        elif filename=="mp3.html":
            return """
<html>
<audio controls>
  <source src="http://localhost:8880/test.mp3" type="audio/mp3">
Your browser does not support the audio element.
</audio>
not m4a </html>"""

resource = playM4A()
factory = Site(resource)
reactor.listenTCP(8880, factory)
reactor.run()

如果您将 audio/mp4a-latm 更改为 audio/mp4

,则代码有效