[英]Phonegap on iOS: The browser does not support MediaStreamTrack
我编写了一个javascript
/ HTML5
应用,该应用需要读取用户的麦克风并在幅度达到一定值时播放简短的mp3
。
我对JavaScript并不是很了解,但是我找到了一个库,可以让我读取用户的麦克风振幅。 这是库的链接。
然后,我使用以下代码播放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
。 我不完全确定该错误意味着什么,但是我想知道是否存在更“电话友好”的方法来解决此问题?
您需要使用iosrtc插件将WebRTC引入iOS。 仅此一点就可以使代码兼容。 它使用MediaStreamTrack.getSources
查找麦克风设备,但现在不推荐使用getSources
,而推荐使用navigator.mediaDevices.enumerateDevices()
,因此您可能需要内部使用enumerateDevices
手动填充getSources
,以使其正确返回。 我相信该插件已经做到了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.