Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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
Javascript,函数无法访问变量_Javascript_Html_Cordova - Fatal编程技术网

Javascript,函数无法访问变量

Javascript,函数无法访问变量,javascript,html,cordova,Javascript,Html,Cordova,我制作了一个phonegap应用程序,当用户单击按钮时会播放声音: <button onclick="playAudio('test.mp3')">Play Some Audio</button> 播放一些音频 但是我希望当用户双击时声音停止,不知为什么我的代码不起作用!我是javascript的初学者,我认为我没有把变量=media放在正确的位置。这是我的全部代码: <body> <h1>Playing Audio</h1&

我制作了一个phonegap应用程序,当用户单击按钮时会播放声音:

 <button onclick="playAudio('test.mp3')">Play Some Audio</button>
播放一些音频
但是我希望当用户双击时声音停止,不知为什么我的代码不起作用!我是javascript的初学者,我认为我没有把变量=media放在正确的位置。这是我的全部代码:

<body>
     <h1>Playing Audio</h1>

    <button onclick="playAudio('test.mp3')">Play Some Audio</button>
    <script type="text/javascript" src="cordova-2.4.0.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript">
        app.initialize();
        var playing = false;
        var media = null;


        function playAudio(src) {
            if (!playing) {
                if (device.platform == 'Android') {
                    src = '/android_asset/' + src;
                }

                var media = new Media(src);
                media.play();
                playing = true;
            } else {
                media.stop();
                playing = false;
            }
        }
    </script>
</body>

播放音频
播放一些音频
app.initialize();
var=false;
var-media=null;
功能播放音频(src){
如果(!玩){
如果(device.platform=='Android'){
src='/android_asset/'+src;
}
var媒体=新媒体(src);
媒体播放();
玩=真;
}否则{
media.stop();
玩=假;
}
}

更改以下行

var media = new Media(src);


更改以下行

var media = new Media(src);


现在我发现问题了,你不能用

 media = new Media (src) 
相反,我使用了tu

 my_Media = new Media (src)
媒体这个词有一个相互参照! 但是@Alexandre说的绝对正确,这让我想到了最终的结果!
谢谢

现在我发现了问题,您不能使用

 media = new Media (src) 
相反,我使用了tu

 my_Media = new Media (src)
媒体这个词有一个相互参照! 但是@Alexandre说的绝对正确,这让我想到了最终的结果!
感谢

@Ian,
var media=new media(src)
正在函数范围中创建另一个变量,该变量与全局范围中声明为
var media=null
@Sheikh Heera的变量不同,那么您会怎么做?当我把它改成媒体=。。没有工作,即使没有播放音频!你不能播放或不能停止音频?您是在浏览器还是移动设备上执行此操作?你有调试日志吗?在我把它改成media=newMedia(src)之前,播放成功了,你的答案是什么都不起作用!很抱歉但是谢谢你的帮助!只要我不能自己测试,我只能假设发生了什么。。。我的猜测是,在您单击停止时,媒体变量尚未初始化(不知道为什么会发生这种情况)。。。Console未显示任何错误???@Ian,
var media=new media(src)
正在函数范围中创建另一个变量,该变量与全局范围中声明为
var media=null
@Sheikh Heera的变量不同,您会怎么做?当我把它改成媒体=。。没有工作,即使没有播放音频!你不能播放或不能停止音频?您是在浏览器还是移动设备上执行此操作?你有调试日志吗?在我把它改成media=newMedia(src)之前,播放成功了,你的答案是什么都不起作用!很抱歉但是谢谢你的帮助!只要我不能自己测试,我只能假设发生了什么。。。我的猜测是,在您单击停止时,媒体变量尚未初始化(不知道为什么会发生这种情况)。。。控制台没有显示任何错误??这就是为什么您不应该使用全局变量-您可能会覆盖某些内容。创建一个范围(查找IIFE),在那里定义变量并从那里附加处理程序。或者,如果不是一个作用域,至少是一个名称空间(全局作用域中的一个对象,您可以将全局变量放入其中)。这就是为什么您不应该使用全局变量-您可能会覆盖某些内容。创建一个范围(查找IIFE),在那里定义变量并从那里附加处理程序。或者,如果不是一个作用域,至少是一个名称空间(全局作用域中放置全局变量的对象)。