使用 createOscilator 创建的声音(例如哔哔声)不适用于 android(版本 8.0)
Sound ( for example beep ) create with createOscilator not working on android ( ver 8.0 )
我在开发一个应用程序 (html, javascript) 并通过 webview 从 android (android studio) 调用。在用户按下按钮(网络视图中的html)的那一刻,我希望听到哔声。 javascript 函数和方法 createOscillator 被调用。在 PC 上的浏览器 (mozilla) 中我有声音,通过 webview 在移动设备上没有声音(例如我在 android 8.0.0 OS 上测试,Samsung galaxy A5 (2017) . 为什么手机没有声音?非常感谢您的回答...
html
<button name="zavrsisnimi" id="zavrsisnimi1" type="submit" onClick="zavrsisnimi(this.id)"
style="width:100%; height:100%; margin:0%;
background-color:white; font-size:xx-large; font-size:2.0vw; font-size:3.0vh; " >
SEND
</button>
JavaScript
function zavrsisnimi(id)
{
var y;
y="yes";
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
if (navigator.vibrate)
{
alert("I m navigator vibrate");
beep2();
}
window.open('/somefolder/file2?zavrsisnimi='+y,'_self');
return;
}
function beep2()
{
a=new (AudioContext || webkitAudioContext);
beepc(300,520,2000);
function beepc(vol, freq, duration)
{
v=a.createOscillator();
u=a.createGain();
v.connect(u);
v.frequency.value=freq;
v.type="square";
u.connect(a.destination);
u.gain.value=vol*0.01;
v.start(a.currentTime);
v.stop(a.currentTime+duration*0.001);
}
}
在Android工作室AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE" />
我是这样做的,现在似乎在 android 上运行良好。所以window.open等待半秒然后继续。
function zavrsisnimi(id)
{
var y;
y="yes";
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
beep2();
beep3();
setTimeout(function () { window.open('/somefolder/file2.php?zavrsisnimi='+y,'_self'); }, 500);
return;
}
我在开发一个应用程序 (html, javascript) 并通过 webview 从 android (android studio) 调用。在用户按下按钮(网络视图中的html)的那一刻,我希望听到哔声。 javascript 函数和方法 createOscillator 被调用。在 PC 上的浏览器 (mozilla) 中我有声音,通过 webview 在移动设备上没有声音(例如我在 android 8.0.0 OS 上测试,Samsung galaxy A5 (2017) . 为什么手机没有声音?非常感谢您的回答...
html
<button name="zavrsisnimi" id="zavrsisnimi1" type="submit" onClick="zavrsisnimi(this.id)"
style="width:100%; height:100%; margin:0%;
background-color:white; font-size:xx-large; font-size:2.0vw; font-size:3.0vh; " >
SEND
</button>
JavaScript
function zavrsisnimi(id)
{
var y;
y="yes";
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
if (navigator.vibrate)
{
alert("I m navigator vibrate");
beep2();
}
window.open('/somefolder/file2?zavrsisnimi='+y,'_self');
return;
}
function beep2()
{
a=new (AudioContext || webkitAudioContext);
beepc(300,520,2000);
function beepc(vol, freq, duration)
{
v=a.createOscillator();
u=a.createGain();
v.connect(u);
v.frequency.value=freq;
v.type="square";
u.connect(a.destination);
u.gain.value=vol*0.01;
v.start(a.currentTime);
v.stop(a.currentTime+duration*0.001);
}
}
在Android工作室AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE" />
我是这样做的,现在似乎在 android 上运行良好。所以window.open等待半秒然后继续。
function zavrsisnimi(id)
{
var y;
y="yes";
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
beep2();
beep3();
setTimeout(function () { window.open('/somefolder/file2.php?zavrsisnimi='+y,'_self'); }, 500);
return;
}