繁体   English   中英

iOS上的Phonegap:浏览器不支持MediaStreamTrack

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM