我写了一个javascript/HTML5应用程序,它需要读取用户的麦克风,并在振幅达到一定值时播放一段简短的mp3。
我对javascript不是很有经验,但我找到了一个库,可以让我读取用户的麦克风振幅。Here是指向该库的链接。
然后,我使用以下代码播放mp3:
var audio = new Audio('a.mp3');
audio.play(); 下面是一个精简的例子,说明了发生了什么以及它是如何组合在一起的:
var mic = new p5.AudioIn();
var Timer;
function start()
{
Timer = setInterval(tick, 100);
mic.start();
}
function stop()
{
clearInterval(Timer);
mic.stop();
}
function playIt()
{
clearInterval(Timer);
mic.stop();
var audio = new Audio('a.mp3');
audio.play();
alarmTimeout = setTimeout(start, 10000);
}
function tick()
{
var p = parseInt(mic.getLevel()*100);
if (p > 80)
{
playIt();
}
}该应用程序在浏览器中运行良好(我只测试了Chrome),但我想使用phonegap作为本机iOS应用程序运行该应用程序。
当我复制我的HTML/javascript并运行它时,我在标题中得到了错误,显示为The browser does not support MediaStreamTrack。我不完全确定这个错误是什么意思,但我想知道是否有一种更“phonegap友好”的方法来解决这个问题?
发布于 2015-09-21 11:38:29
您需要使用将WebRTC引入iOS。仅此一点就可以使代码兼容。它使用MediaStreamTrack.getSources来查找麦克风设备,但getSources现在已弃用,取而代之的是navigator.mediaDevices.enumerateDevices(),因此您可能需要手动屏蔽getSources,在内部使用enumerateDevices,以便它正确返回。我相信插件已经做到了这一点。
https://stackoverflow.com/questions/30018675
复制相似问题