我搜索了整个互联网,找到了解决问题的方法,但我没找到:(
所以,我正在使用Phonegap和Xcode做一个SoundBoard应用程序,我的问题是从我用来播放音频的同一个按钮停止声音,但我不能这样做,我认为这对我来说是不可能的!
这是具有Play和Stop功能以及IsPlaying功能的Javascript的一部分,我创建的是尝试使用变量SoundPlaying确定声音是否正在播放:
<script type="text/javascript" charset="utf-8">
SoundPlaying = false
...
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function() { console.log("playAudio():Audio Success");},
// error callback
function(err) { console.log("playAudio():Audio Error: "+err);});
// Play audio
my_media.play();
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
function IsPlaying(url) {
if (SoundPlaying==false) { playAudio(url); SoundPlaying=true; alert('SoundPlaying is ' + SoundPlaying); }
else { stopAudio(); SoundPlaying=false; alert('SoundPlaying is ' + SoundPlaying); }
}
</script>
然后我尝试从按钮调用IsPlaying函数:如果变量SoundPlaying为false,则播放声音并将SoundPlaying设置为true,ELSE停止声音并将SoundPlaying设置为false
<button id='button'
style="background-image:url(imgs/image.png);"
onClick = "IsPlaying('msk/sound.mp3');" >
</button>
就像声明的ELSE部分没有被检查,但是IF部分是的。事实上,我可以看到警告窗口说SoundPlaying是真的,但如果我第二次点击按钮......或者第三次......等等。
你能帮帮我吗?
非常感谢!
维托里奥
答案 0 :(得分:0)
我认为你会深入研究代码......
您对此解决方案有何看法?
// Audio player
//
var soundfile = null;
// Play audio
//
function playPauseAudio(src) {
if (soundfile == null) {
// Create Media object from src
soundfile = new Media(src, onSuccessAudio, onErrorAudio);
soundfile.play();
} else {
soundfile.stop();
soundfile = null;
}
}
// Callback
function onSuccessAudio(){};
function onErrorAudio(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
答案 1 :(得分:0)
我在我的phonegap项目中使用了这个,效果很好。我甚至用一个暂停按钮:
<script type="text/javascript">
function hide(elementID)
{
document.getElementById(elementID).style.display = 'none';
}
function show(elementID)
{
document.getElementById(elementID).style.display = '';
}
</script>
<img id="off" src="images/general/sound-off.png" width="40" height="32" onClick="show('on'); hide('off'); playAudio();" alt="on">
<img id="on" src="images/general/sound-on.png" width="40" height="32" onClick="show('pause'); hide('on'); pauseAudio();" style="display:none;" alt="off">
<img id="pause" src="images/general/sound-pause.png" width="40" height="32" onClick="show('on'); hide('pause'); playAudio();" style="display:none;" alt="on">
对于音频,我在onclick中使用playaudio(),pauseaudio()和stopaudio()命令。 希望这会有所帮助: - )