无法使用谷歌应用引擎播放音频。它在本地工作

时间:2012-06-16 01:49:42

标签: javascript html5 google-app-engine webapp2

我有一个带有一些阿拉伯数字的网页,其中一个音频播放时带有鼠标悬停动作,数字变得明显。它在我的浏览器中本地工作,但它不适用于谷歌应用程序引擎。它也无法在谷歌应用引擎下本地工作,但如果我只是运行html文件,它的工作原理。这是我的代码的一部分

<script language="javascript" type="text/javascript">

 function playSound(soundfile) {
 document.getElementById("dummy").innerHTML=
 "<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
 };
 </script>

<div>

    <table>
        <tr>    
            <td onmouseover="playSound('numbers/1.mp3');">واحِد</td>
            <td onmouseover="playSound('numbers/1st.mp3');">الأَوَّل</td>
            <td onmouseover="playSound('numbers/1st_f.mp3');">الأُولى</td>
            <td onmouseover="playSound('numbers/saturday.mp3');">السَّبْت</td>
        </tr>

    </table>

这是python代码

import os
import webapp2
import jinja2
from google.appengine.ext import db

template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
                               autoescape=True)

class Handler(webapp2.RequestHandler):
    def write(self, *a, **kw):
        self.response.out.write(*a, **kw)
    def render_str(self, template, **params):
        t = jinja_env.get_template(template)
        return t.render(params)
    def render(self, template, **kw):
        self.write(self.render_str(template, **kw))

class MainPage(Handler):
    def get(self):
        self.render('ArabicNumbers.html')

app = webapp2.WSGIApplication([('/', MainPage)], debug=True)

这是app.yaml

application: arabicbetweenyourhands
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.1"

- name: jinja2
  version: latest

此外,这里是网站的网址。 arabicbetweenyourhands.appspot.com。你可以在那里看到完整的源代码。有任何想法吗??谢谢

1 个答案:

答案 0 :(得分:5)

当我访问您的网页时,我获得了http://arabicbetweenyourhands.appspot.com/numbers/4th_f.mp3

的404

您需要将'numbers'目录作为静态目录添加到app.yaml并添加适当的mime类型,如下所示:

handlers:
- url: /numbers
  static_dir: numbers
  mime_type: audio/mp3