2

我有这样的非常简单的代码:

<script type="text/javascript" charset="utf-8">
        function playAudio() {
// i try to specificate path to audio file different ways:
           var src ="/android_asset/www/track.mp3";
           //src = "http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3";
           var media = new Media(src, // success callback
                    function() {
                console.log("playAudio():Audio Success");
            },
            // error callback
            function(err) {
                console.log("playAudio():Audio Error: "+err);
        });
           alert('sm'); // alert doesn't work -> so prev func 'new Media' doesn't work too
           media.play();

        }

    </script>

这个函数的调用是这样的:

<body onload="playAudio()">

我不明白 - 为什么它不起作用?音频文件是“assets/www/track.mp3”

4

2 回答 2

0

问题就在这里

var src ="/android_asset/www/track.mp3";

JS 不知道/android_asset/ 只有 JAVA 只知道这个路径,所以要么使用 java - JS 注入,要么把这个文件放在 www 文件夹中。

于 2013-11-13T12:03:46.927 回答
0

我还不明白为什么,但是当我尝试使用这段代码时:

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

    function playAudio(url) {
        // Play the audio file at url
        // http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3
        var my_media = new Media(url,
            // success callback
            function () {
                console.log("playAudio():Audio Success");
                alert("ok");
            },
            // error callback
            function (err) {
                console.log("playAudio():Audio Error: " + err);
                alert("oops");
            }
        );
        // Play audio
        my_media.play();
    }
    </script>

并调用它:

<a href="#" class="btn large" onclick="playAudio('/android_asset/www/track.mp3');">Play Audio</a>

或者当我这样称呼它时:

<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>

只有在模拟器上才能工作!但是在网络浏览器中它仍然不起作用

于 2013-11-13T14:45:47.153 回答