Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过phonegap和cordova for Android播放音频_Android_Html_Cordova - Fatal编程技术网

通过phonegap和cordova for Android播放音频

通过phonegap和cordova for Android播放音频,android,html,cordova,Android,Html,Cordova,我一直在为android编写测试应用程序,但在播放音频文件时遇到了一个问题。我的问题在于,只要页面加载音频文件,它就可以播放,而不是通过点击按钮播放 我用cordova的例子来播放音频,但我不知道为什么音频会立即播放 谢谢 剧本 script type="text/javascript" charset="utf-8" src="cordova-2.2.0.js"></script> <script type="text/javascript" chars

我一直在为android编写测试应用程序,但在播放音频文件时遇到了一个问题。我的问题在于,只要页面加载音频文件,它就可以播放,而不是通过点击按钮播放

我用cordova的例子来播放音频,但我不知道为什么音频会立即播放

谢谢

剧本

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

        // Wait for Cordova to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova is ready
        //
        function onDeviceReady() {
            playAudio("/android_asset/www/audio/audio.mp3");
        }

        // Audio player
        //
        var my_media = null;
        var mediaTimer = null;
    function playAudio(src) {
            if (my_media == null) {
                // Create Media object from src
                my_media = new Media(src, onSuccess, onError);
            } // else play current audio
            // Play audio
            my_media.play();

            // Update my_media position every second
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // get my_media position
                    my_media.getCurrentPosition(
                        // success callback
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // error callback
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

</script>
scripttype=“text/javascript”charset=“utf-8”src=“cordova-2.2.0.js”>
//等待Cordova加载
//
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
//科尔多瓦准备好了
//
函数ondevicerady(){
playAudio(“/android_asset/www/audio/audio.mp3”);
}
//音频播放器
//
var my_media=null;
var mediaTimer=null;
功能播放音频(src){
if(my_media==null){
//从src创建媒体对象
my_media=新媒体(src、onSuccess、onError);
}//否则播放当前音频
//播放音频
我的媒体播放();
//每秒更新我的媒体位置
如果(mediaTimer==null){
mediaTimer=setInterval(函数(){
//得到我的媒体职位
my_media.getCurrentPosition(
//成功回调
职能(职位){
如果(位置>-1){
设置音频位置((位置)+“秒”);
}
},
//错误回调
职能(e){
console.log(“获取位置时出错=”+e);
设置音频位置(“错误:+e”);
}
);
}, 1000);
}
}
HTML按钮单击

<a class="button" onclick="playaudio('/android_asset/www/audio/audio.mp3')";>Play that audio!</a>
播放音频!

因为
ondevicerady()
addEventListener
的侦听器回调

因此,每当此侦听器实例化您的
ondevicerady()
方法时,将自动调用该方法

从该方法调用
playAudio()
method,这就是音频开始自动播放的原因

ondevicerady()
回调函数中删除此
playAudio()
方法调用

编辑:

改变这个

<a class="button" onclick="playaudio('/android_asset/www/audio/audio.mp3')";>Play that audio!</a>
播放音频!
有,

播放音频!

您正在执行设备上的播放音频方法,导致页面加载时播放声音。您好-我已删除它,现在音频根本无法播放感谢您的回复-更改了代码,但仍然无法播放working@Grimlockz检查您是否从按钮单击中正确拼写了
playAudio
,并在
playAudio
中输入警报以检查是否调用了Methodos?我已修改了代码,但仍然不工作。它一定不会被呼叫谢谢你的帮助,你在按钮上做了什么改变?
<a class="button" onclick="playAudio('/android_asset/www/audio/audio.mp3');">Play that audio!</a>