0

我正在尝试开发一个简单的音频播放器。按照网络上的教程和 stackoverflow 中的教程,我能够使音频播放器工作。

工作(没有 Jquery 移动脚本头):

    <title>Media Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>

    <script type="text/javascript" charset="utf-8">
    var my_media = null;
    // Wait for Cordova to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova is ready
    //
    function onDeviceReady() {


    }

    // Audio player

    // Play audio
    //
    function playAudio(src) {
       //some code here
    }

    // Pause audio
    // 
    function pauseAudio() {
    //some code here
    }

    // Stop audio
    // 
    function stopAudio() {
        //some code here

    }

    </script>

我在阅读本网站后所做的一项改进是将 var my_media = null; 在 onDeviceReady() 之前

问题:由于我想在 Jquery Mobile 中实现这个音频播放器,所以我将 Jquery Mobile 脚本添加到标题中,如下所示:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
              "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>

<script type="text/javascript" charset="utf-8" src="jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="jquery/jquery.mobile-1.3.1.min.js"><script>
    <title>Media Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>

    <script type="text/javascript" charset="utf-8">
    var my_media = null;
    // Wait for Cordova to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova is ready
    //
    function onDeviceReady() {


    }

    // Audio player
    //
    // code truncated for simplicity

不幸的是,添加 Jquery 移动脚本头后,Eclipse 日志显示:

Uncaught ReferenceError: Media is not defined 

所以,我怀疑问题出在头脚本启动顺序上。问题是,如何以及在何处在标题中插入 Jquery Mobile 脚本以使 Phonegap 媒体工作?

关于这个问题还有另一个线程,仍然没有答案。感谢帮助。

编辑: 我已经追查到触发问题。显然,当我添加这个 Jquery-mobile 标头时

<script type="text/javascript" charset="utf-8" src="jquery/jquery.mobile-1.3.1.min.js"><script>

由于媒体未定义错误,无法播放音乐。

4

1 回答 1

1

好吧,虽然没有直接的解决方案,但不知何故我从这里得到了灵感:jQuery Mobile & PhoneGap deviceReady() not fire

我的 Jquery mobile + Phonegap 音频播放器经过以下修改后运行良好:

1)首先加载cordova.js

2)其次是jquery mobile.css、jquery.js和jquery mobile.js

3)主要问题是,我认为是,我将科尔多瓦烧制过程与音频播放器的功能混合在一起。当我将科尔多瓦触发过程作为一个独立的块脚本和音频播放器作为另一个脚本块分离时,它工作得非常好。以下是我的代码供参考:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
              "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Media Example</title>


    <script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>

    <link rel="stylesheet" type="text/css" href="jquery/css/jquery.mobile-1.3.1.min.css"/>
    <script type="text/javascript" charset="utf-8" src="jquery/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="jquery/jquery.mobile-1.3.1.min.js"><script>

    <script type="text/javascript" charset="utf-8">// Wait for Cordova to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova is ready
    //
    function onDeviceReady() {


    }</script>

    //Cordova firing process and audio player function script declarations are separated. 

    <script type="text/javascript" charset="utf-8">



    // Audio player
    //
    var my_media = null;
    var mediaTimer = null;

    // Play audio
    //
    function playAudio(src) {
       //some code here


    }

    // Pause audio
    // 
    function pauseAudio() {
        //some code here
    }

    // Stop audio
    // 
    function stopAudio() {
       //some code here

    }

    </script>
  </head>

感谢您访问我的问题,也感谢 Omar 的答复。

于 2013-06-17T05:50:49.263 回答